读书人

请问这样的mysql语句如何写

发布时间: 2012-03-07 09:13:51 作者: rapoo

请教这样的mysql语句怎么写?
有两个表

问题一:

表A里面有 有一个字段是item_id 包含一些项
表B里面也 有一个字段是item_id 包含一些项

我想找到所有的item_id的值, 这些值存在于表A里面, 但是不存在于表B中
请问怎么写?


问题二:
表A里面有 有一个字段是item_id 包含一些项
表B里面也 有一个字段是item_id,还有一个字段是item_value 包含一些项

我想找到所有的item_id的值, 这些值存在于表A里面, 但是不存在于表B中, 或者即使存在于表B中,其对应的item_value 均 <3

注意 表B的item_id不是唯一的,即可能存在这种情况

item_id item_value
10020 1
10020 3
10020 2
10021 3
10021 0

所以找到的item_id的值,只要有一项对应的item_value > =3 就不复合条件了

请问这个sql语句怎么写,谢谢!

[解决办法]
问题一。 select item_id from A where item_id not in (selet item_id from B)
问题二。 select item_id from A where item_id not in (select item_id from b) union select item_id
from a ,b where a.item_id =b.item and a.item_value <3
[解决办法]
问题2: try
select item_id from a where item_id not in (select item_id from B)
union
select item_id from a where item_id in(
select bb.item_id from(
select max(item_value) aa, item_id from B group by item_id having aa <3)bb);
[解决办法]
1、

SQL code
select A.item_id  from A left join B using(item_id) where B.item_id is null; 

读书人网 >Mysql

热点推荐