0
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 ;

where 条件弄乱了我的输出,我做错了什么

4

1 回答 1

1

我怀疑您正在寻找只有一条记录是“voednr = 22”的“snr”。您的查询正在获取所有具有恰好一个这样的“voednr”的“snr”,以及其他“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 行的行。

于 2012-12-10T21:50:03.027 回答