2014-08-29 2 views
0

이 문제와 관련하여 Google 검색에서 어려움을 겪고 있습니다. 여러 테이블에서 쿼리가 너무 같은 IN 문을 사용하여 값을 알 수없는 번호로 무엇 메신저하려고 노력WHERE IN을 사용하여 여러 테이블에서 조인

...

SELECT * FROM table_1 t1 WHERE t1.t1_id IN ('12345223', '2343374') JOIN table_2 t2 WHERE t2.t2_id IN ('2164158194', '3232422423') 

위의 코드는 내가 달성하기 위해 노력하고 무엇을 보여줍니다. 나는 SQL 전문가가 아니기 때문에 나는이 일을 성취 할 수 있을지 아니면 그것을 할 수있는 더 좋은 방법이 있는지 완전히 확신 할 수 없다. 어떤 도움이라도 대단히 감사합니다.

+0

Csan을 사용하면 테이블 구조, 샘플 데이터 및 원하는 결과를 얻을 수 있습니까? – Jens

+2

'JOIN'은'WHERE' 절 앞에 올 필요가 있습니다. 마지막에 여러 개의 WHERE 절을 AND로 결합 할 수 있습니다. – Dan

답변

0

업데이트 쿼리는 :

SELECT * 
FROM table_1 t1 
JOIN table_2 t2 
ON t1.t1_id = t2.reft1_id 
WHERE t1.t1_id IN ('12345223', '2343374') 
AND t2.t2_id IN ('2164158194', '3232422423') 

은 "ON"절은 두 개의 테이블에 링크 된 두 개의 열을 포함해야합니다.

+0

해답을 가져 주셔서 감사합니다. 약간 혼란스러워 보입니다. – Cameeob2003

0

조항의 순서가 뒤섞여 있습니다.

SELECT * 
FROM table_1 t1 
JOIN table_2 t2 
WHERE t1.t1_id IN ('12345223', '2343374') 
    AND t2.t2_id IN ('2164158194', '3232422423') 

하지만 당신의 문은 또한 것 중 하나 결과 때문에 JOIN -condition를 그리워 할 것 같다 당신은 1) SELECT, 2) FROMJOIN와의, 3) 이와 같이 WHERE

을 가야한다

t1_id   t2_id 
12345223   2164158194 
12345223   3232422423 
2343374   2164158194 
2343374   3232422423 

JOIN 콘 않고 : 오류 (이 오라클에서하는) 나에 (가정 t1_id 및 t2_id 차 열쇠()는 MySQL의에서 그렇게 보인다) 당신에게 4 개 결과 라인을 제공 dition은 당신이 정말로 원하는 바가 거의 없기 때문에 성명서에 명시되어 있고 CROSS JOIN을 사용해야합니다. 이 같은