日期:2014-05-17  浏览次数:20709 次

一个sql语句的写法,有点不是很清楚
table a:
goods_name goods_detail goods_memo flag
萝卜 好吃 很好吃 蔬菜
黄瓜 难吃 很难吃 蔬菜
苹果 好吃 难吃 水果
苹果 好吃 难吃 水果

table b:
goods_name goods_detail goods_memo flag
萝卜 好吃 很好吃 蔬菜
黄瓜 难吃 很难吃 蔬菜
李子 好吃 难吃 水果
李子 好吃 难吃 水果
苹果 难吃 难吃 水果


2个表没有主键

现在想找出table b比table a 多了几条记录,当flag=水果的时候


在这里例子里面,结果是3条记录,李子和苹果都是flag=水果,table b中有李子,table a中没有李子,然后b表中的苹果中的goods_detail字段与a表中的字段也不同,所以也要计算进去





------解决方案--------------------
SQL code
select count(*)  from  b x where not exists(select 1 from a where goods=x.goods and goods_detail=x.goods_detail )and flag=蔬菜