MYSQL - BASIC QUERIES + group by + having

时间:2012-12-10 21:43:10

标签: mysql join

SELECT dieet.snr, soort.nsnaam   FROM soort
JOIN dieet ON soort.snr = dieet.snr
JOIN voedsel ON dieet.voednr = voedsel.voednr 
WHERE voedsel.voednr = 22 
GROUP BY dieet.snr
HAVING COUNT(*) = 1 ;

哪里条件会影响我的输出,我做错了什么

1 个答案:

答案 0 :(得分:1)

我怀疑你正在寻找只有一个记录是“voednr = 22”的“snr”。你的查询得到的所有“snr”都有一个这样的“voednr”,以及其他“voednr”。

让我建议以下查询:

SELECT dieet.snr, soort.nsnaam
FROM soort
JOIN dieet ON soort.snr = dieet.snr
JOIN voedsel ON dieet.voednr = voedsel.voednr 
GROUP BY dieet.snr
HAVING COUNT(*) = 1 and max(voedsel.voednr) = 22

这将为您提供只有22的行。