0
내가 같은 테이블에 뭔가가 어디 체크 대상 :MySQL은 : 행의 하위 집합을 사용하여 절
----------------------------------------
|uID|responseDate|field_01|field_02|etc|
+---+------------+--------+--------+---+
| 1 | 2011-12-02 | yes | no | |
| 2 | 2011-11-25 | no | yes | |
| 1 | 2012-01-02 | no | yes | |
| 2 | 2012-12-01 | no | no | |
| 3 | 2010-01-02 | yes | no | |
+---+------------+--------+--------+---+
내가 field_01의 최신 응답이 '예'입니다 누구를위한 UID 및 responseDates을 좀하고 싶습니다를 - 그래서 내 쿼리를 반환해야합니다 :
나는 내부 조인을 사용하고 있지만 잘못되었습니다. 여기 내 쿼리입니다 :이 반환 무엇
SELECT f.uID, f.responseDate
FROM form_05 as f
INNER JOIN (
SELECT uID, max(responseDate) AS latest_date
FROM form_05
WHERE field_01 = 'yes'
GROUP BY uID) dmax
ON dmax.uID = f.uID and dmax.latest_date = f.responseDate
ORDER BY f.uID ASC;
그러나 field_01은 '예, 각 UID, 즉 :
------------------
|uID|responseDate|
+---+------------+
| 1 | 2011-12-02 |
| 3 | 2010-01-02 |
+---+------------+
에 대한 최신 항목입니다 그러나 나는 그것을 원하지 않는다. 각 uID에 대한 최신 항목 만 테스트에 적합하도록하고 싶습니다. 어떻게 쿼리를 재구성 할 수 있습니까? 모든 포인터 크게 감사하겠습니다.
! 나는 지금 그것을 원래의 시도와의 차이점을 이해하기 위해 파싱 할 것이다. 다시 한 번 감사드립니다! – yycroman
그래서 where 절을 조인 외부로 이동하는 것이 유일한 차이점입니다. 그게 뭐지? – yycroman
솔직히 말해서 ... 나는 당신의 코드를 보지 않았다. :) 그러나 분명히 당신은이 상황에서 필연적이라고 생각하는 왼쪽 결합을 사용하지 않고있다. 이제 당신의 코드를 보았습니다. 나는 정말로 당신이 정말로 정말로 가까이에 있음을 알아 차렸습니다! –