2012-12-10 3 views
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 ; 

가진 +에 의해 기본 QUERYS 곳 + 그룹 상태가 내가 뭘 잘못 내 출력을 엉망으로 어디MYSQL -

+0

당신이 무엇을 의미합니까이 :

날 다음 쿼리를 제안하자? 기본 데이터는 무엇입니까? 기대했던 결과는 무엇입니까? 대신 당신은 무엇을 얻습니까? – eggyal

+0

데이터는 적지 만 더 많은 것을 얻고 있습니다. 그룹과 거의 같습니다. 무시되고 카운트됩니다. – hamchi

+0

좀 더 명확해야합니다. [질문 편집] (http://stackoverflow.com/posts/13809764/edit) 및/또는 [sqlfiddle] (http://sqlfiddle.com)에 게시하여 몇 가지 예를 보여주십시오. – eggyal

답변

1

난 당신이 정확히 하나가 그 "SNR"의를 찾고 있습니다 의심 기록은 "voednr = 22"입니다. 귀하의 질의는 다른 "voednr"과 함께 "voednr"과 같은 하나의 "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

+0

감사 메이트 !!! 이것은 내가 무엇을 찾고 있는지, 당신이 그 모호한 묘사로 그것을 어떻게 알아낼 수 있었는지 나는 모른다! 그러나 그것을 – hamchi

+0

@ user1880803으로 이해하십시오. . . 나는 사람들이 실제로 무엇을 의미하는지 알아 내려고 노력하면서 일정한 양의 경험을 가지고있다.) –

+0

하지만 왜 이런 일을 할 수 없는가? : vounted (*) = 1이고 어디에 voedsel.voednr = 22 – hamchi