同样的总金额购买两种水果问有多少种方案。

题目如下:

        假设小明有100元,需要购买两种水果,利用SQL查询有几种购买方案.

表格如下:

   我的想法是,用笛卡尔积求:

数量可以除以二获得,但是如果我想获得方案详情,就会发现,上边的结果有重复情况:

比如   葡萄+苹果  和苹果+葡萄 属于一种方案。如此

如何达到去重的效果呢?

基于你的sql进行修改。第一个select TNAME,NAME2改为select distinct if(TNAME<NAME2,TNAME,NAME2) as TNAME,if(TNAME>=NAME2,TNAME,NAME2) as NAME2

这个写算法求比较好。