mysql 选择唯一的记录

mqkwyuun  于 2023-01-20  发布在  Mysql
关注(0)|答案(2)|浏览(138)

我有一个MySql表,其中包含以下行:
| PID|乡村|
| - ------|- ------|
| 四三六|1个|
| 四三六|五个|
| 四三六|七|
| 四三九|七|
| 四百四十|三个|
| 四四六|七|
| 四四六|1个|
例如,我试图检索只有国家7且不应出现在其他组合中的产品。如何实现这一点?
我尝试如下:

SELECT * from table_name WHERE country = 7;

但是结果/结果包含PID 436、439和336。它应该只给予439。

eanckbw9

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
);
wfveoks0

wfveoks02#

我们可以在这里使用聚合:

SELECT pid
FROM yourTable
GROUP BY pid
HAVING SUM(country <> 7) = 0;

相关问题