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」であるレコードが 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 の行が取得されます。

于 2012-12-10T21:50:03.027 に答える