我有一个MySql表,其中包含以下行:| PID|乡村|| - ------|- ------|| 四三六|1个|| 四三六|五个|| 四三六|七|| 四三九|七|| 四百四十|三个|| 四四六|七|| 四四六|1个|例如,我试图检索只有国家7且不应出现在其他组合中的产品。如何实现这一点?我尝试如下:
SELECT * from table_name WHERE country = 7;
但是结果/结果包含PID 436、439和336。它应该只给予439。
eanckbw91#
您可以为此使用 not exists:
select * from table_name t where t.country = 7 and not exists ( select * from table_name t2 where t2.pid = t.pid and t2.pid != t.pid );
wfveoks02#
我们可以在这里使用聚合:
SELECT pid FROM yourTable GROUP BY pid HAVING SUM(country <> 7) = 0;
2条答案
按热度按时间eanckbw91#
您可以为此使用 not exists:
wfveoks02#
我们可以在这里使用聚合: