2014-07-15 2 views
-1

나는 매우 어리 석다. 나는 문제가있어서 그것을 알아낼 수 없다. 2 열간단한 mysql 질의를 출력 할 수 없다.

아주 간단한 MySQL의 테이블 :

ID1 | ID2 
1 |  1 
1 |  2 
2 |  1 

조건을 설명하는 방법을 아주 잘 알고하지 마십시오 :이 값을 1로 연결을 가지고 있기 때문에 내가 열 ID1에서 1의 값을 선택합니다 ID2에서 2.

IN과 다소 반대입니다.

내가 만든 경우 SELECT ID1 FROM X WHERE ID2 IN (1,2) 나는 동창이기 때문에 1과 2를 모두받습니다. 교차로가 필요합니다. SELECT ID1 FROM X WHERE ID2 IN BOTH 1 AND 2과 같습니다.

그룹화와 관련이 있다는 것이 확실합니다.

한 솔루션은

SELECT * FROM 
(SELECT ID1, GROUP_COCAT(ID2) y 
FROM X 
GROUP BY ID1)t 
WHERE t.y = '1,2' 

을 확인하는 것입니다하지만 난 순서 (1,2 또는 2,1) 모르는 내가 이상의 값을 가질 수 있기 때문에이 확인이 아닙니다.

바라건대 이것은 충분히 명확하다. 나는 매우 피곤하다.

+0

ID2는 1, 2 포함? – Sadikhasan

+0

이것은 단지 작은 예일 뿐더러 더 많은 값을 포함합니다. 예를 들어 1,2,3,4를 포함 할 수 있으며 1,2를 검색하면 좋은 결과를 얻고 싶습니다. – Cosmin

+0

이 질문을 더 모호하게 만들 수 있습니까? 그건 그렇고, 당신이 다음과 같은 것을 찾고 있다고 생각합니다. SELECT a. * 어디서 왔는가 a.y IN (1,2) GROUP BY a.x HAVING COUNT (*) = 2; – Strawberry

답변

1
SELECT t.* 
FROM TEMP t 
WHERE t.id2 IN (1, 2) 
GROUP BY t.id1 HAVING COUNT(*) = 2 

또는

SELECT t.* 
FROM TEMP t 
WHERE t.id2 IN (1, 2, 3, 4) 
GROUP BY t.id1 HAVING COUNT(*) = 4 
+1

예, 딸기와 같이 말했습니다. 당신이 말한대로, 나는 결코 그 말을 귀담아 들지 않습니다. 10 분 안에 대답을 받아 들일 것입니다. – Cosmin

관련 문제