나는 모든 가격 값은 다음 0을 어디에 GROUPID의 인스턴스를 찾기 위해 나는 곳 모두 모두 GROUPID를 찾으려면 다음 쿼리를 사용하려고 시도하고있는 무슨 내가그룹 내에서 동등 값을 찾으려면자가 조인을 어떻게 사용할 수 있습니까?
--------------------------------
| Groupid | Price | Customer|
--------------------------------
| 001 | 9 | 4 |
| 001 | 0 | 4 |
| 002 | 4 | 4 |
| 002 | 4 | 4 |
| 003 | 0 | 4 |
| 003 | 0 | 4 |
| 004 | 4 | 4 |
| 004 | 7 | 4 |
--------------------------------
에서 찾고의 단순화 된 버전입니다 찾고 있어요 특정 그룹에 대한 가격 값 = 0
SELECT * FROM MYTABLE WHERE GROUPID IN
(SELECT TB1.GROUPID FROM MYTABLE TB1 JOIN MYTABLE TB2 ON TB1.GROUPID = TB2.GROUPID
AND TB1.PRICE = 0 AND TB2.PRICE = 0)
and CUSTOMER = 4
ORDER BY GROUPID;
이 쿼리 반환 : 내 경우
| Groupid | Price | Customer|
--------------------------------
| 001 | 9 | 4 |
| 001 | 0 | 4 |
| 003 | 0 | 4 |
| 003 | 0 | 4 |
--------------------------------
, 난 단지 내가 필요 GROUPID 003을 반환하는 t.
또한 groupid 내의 모든 0 이외의 PRICE 값을 반환하도록 쿼리를 수정하는 데 도움을 요청하고 싶습니다. 위와 동일한 쿼리를 수행 할 필요는 없습니다. 예를 들어 반환 값은 다음과 같습니다.
| Groupid | Price | Customer|
--------------------------------
| 002 | 4 | 4 |
| 002 | 4 | 4 |
아무 도움이됩니다. 시간 내 주셔서 감사합니다. 모든 가격은 제로 경우
하면이'null이 될 price' 수 있습니까? – mathguy
조인은 이런 종류의 질문에 대한 답변 유형이 매우 드물습니다. GROUP BY 및 HAVING 절이보다 효율적으로 접근합니다 (Gordon은이 줄을 따라 답변을 게시했습니다.) – mathguy