2015-02-06 7 views
0

mysql에 2 개의 테이블을 연결하려고합니다. 그러나 중복 된 값을 얻고 있습니다. 이 SQLFIDDLE은 내가 말하고자했던 것을 분명히 할 것입니다.mysql에서 두 개의 테이블을 연결하여 결과가 중복 됨

결과로 TW_IDPFC_ID을 볼 수 있습니다. 난 그냥 (1, 1), (11, 11), (21, 21) 필요 등등 .. 지금은 내가이 쿼리를 사용하고 (1, 1), (1, 11), (1, 21), ...

을 얻고있다 : 당신이 더 많은 설명이 필요한 경우

SELECT tw.id as tw_id, pfc.id as pfc_id 
FROM account_treasury_wholesale tw 
INNER JOIN purchase_foreign_currency pfc 
    ON tw.wholesaler_id = pfc.currency_supplier_id 
WHERE tw.wholesaler_id='11' 

은 알려주세요. 감사.

+0

둘 다 시도했습니다. –

+0

왜 GROUP BY입니까? (사용할 집계 함수가 있습니까?) – jarlh

+0

조인은 일반적으로 조건이있는 교차 제품입니다. 하나의 t1 행이 4 t2 행과 일치하면 1 x 4 = 4 행을 되 찾을 수 있습니다. 2 t1 행이 4 t2 행과 일치하면 2 x 4 = 8 행이 반환됩니다. 다른 논리를 원하면 단어 나 SQL로 더 잘 설명해야합니다. – jarlh

답변

0

JOIN ON tw.id=pfc.id이거나 해당 사항이없는 경우 스키마를 수정해야 할 수도 있습니다.

이것은 당신이 가입 때 발생하는 것입니다 ON tw.wholesaler_id = pfc.currency_supplier_id :

  1. 이를 찾습니다 있도록 tw 테이블에서 검색 첫 번째 행은 해당 행의 tw.wholesaler_id가 11
  2. (때문에 당신의 WHERE 절) tw.id=1입니다 테이블의 행은 pfc.currency_supplier_id도 11 인 행에 대해 4 행 (id은 1, 11, 21, 23과 동일)입니다. 그래서 십자가 제품은 (1, 1), (1, 11), (1,21)이 될 것입니다 (1,23)tw 테이블의 다음 행이 검색되고 동일한 검색은 ... (11,1), (11,11), (11,21), (11,23)로 이어질 것 pfc 테이블과

I를 발생

  • 네가하려는 것을 완전히 이해하지 못한다는 것을 인정한다. 조금 더 설명하면 도움이 될 것입니다.

  • 관련 문제