我有一个sql表(参见包含的.jpg)。 有些产品,如100和103的卡值为1300,但有些产品,如101,则没有。我需要创建一个SQL查询来识别没有1300卡的产品并只返回那些卡。 我的小组通过查询没有实现这一点。
答案 0 :(得分:1)
select product_id
from your_table
group by product_id
having sum(card = 1300) = 0
答案 1 :(得分:1)
正如我的评论所述,你可以在没有GROUP BY
条款的情况下做到这一点。 @DrunkenCodeMonkey在我整理一个SQL Fiddle以显示它的实际情况时,打败了我的答案。
select *
from products as t
where not exists (select *
from products as z
where z.product_id = t.product_id and z.card = 1300);
NOT IN
和NOT EXISTS
都可以使用。
答案 2 :(得分:1)
不等于<>
运算符
您可以在<>
条款!=
中使用where
或group by
运算符
SELECT product_id
from table_name
where card <> 1300
group by product_id;
OR
SELECT product_id
from table_name
where card != 1300
group by product_id;
答案 3 :(得分:0)