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条件が私の出力を台無しにしています、私は何を間違っていますか
「voednr = 22」であるレコードが 1 つだけある「snr」を探しているのではないかと思います。あなたのクエリは、他の「voednr」とともに、そのような「voednr」を1つだけ持つすべての「snr」を取得しています。
次のクエリを提案させてください。
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 の行が取得されます。