2013-04-25 2 views
0

나는 내가 MySQL의 SQL 쿼리를 사용하여 가입 할 다음 OFBiz 테이블이 있습니다여러 테이블 가입하고 쿼리

  1. USER_LOGIN을
  2. PERSON
  3. PARTY_CONTACT_MECH
  4. CONTACT_MECH
  5. TELECOM_NUMBER
  6. 우편 번호 :
  7. 파트

USER_LOGIN, PERSONPARTY_CONTACT_MECH 모두 PARTY 테이블의 기본 키 "PARTY_ID"를 참조하는 외래 키 "PARTY_ID"가 포함되어 있습니다.

PARTY_CONTACT_MECH, TELECOM_NUMBERPOSTAL_ADDRESS 모든 테이블 CONTACT_MECH의 기본 키 "PARTY_ID"를 참조하는 외래 키 "CONTACT_MECH_ID" 있습니다. PARTY_CONTACT_MECH 이후

"PARTY_ID"에 위 테이블의 제 1 세트에 관한, 또한 "CONTACT_MECH_ID"에 테이블의 제 2 세트에 관련되고, 두 세트 또는 오히려 모든 테이블에 따라서 이들 두 개의 키 "PARTY_ID""CONTACT_MECH_ID"에 결합 될 수있다 .

내 질문은 :

  • 가 어떻게이 모든 테이블에는 다음 필드가 쿼리에 가입 않습니다.

.

PARTY.PARTY_ID, 
USER_LOGIN.USER_LOGIN_ID, 
PERSON.FIRST_NAME, 
CONTACT_MECH.CONTACT_MECH_ID, 
POSTAL_ADDRESS.CITY, 
TELECOM_NUMBER.CONTACT_NUMBER. 
+2

데이터베이스 스키마로 [SQLFiddle] (http://sqlfiddle.com/)을 수행 할 수 있습니까? –

+0

아니면 그냥 서식을 터치 ... – Kermit

+0

당신이 그들을 가입하는 열쇠를 알고 있기 때문에, 무엇이 당신이 쿼리를 작성하는 중지합니까? –

답변

0

기본 키가있는 모든 테이블을 다른 테이블을 호출하는 외부 키에 조인하려고합니다. 외래 키는 본질적으로 다른 테이블의 기본 키입니다. 이것은 테이블에 여분의 열을 추가하는 대신 외래 키를 사용하기위한 것입니다.

일부 테이블에서는 여러 값을 조인하려고했습니다. 이걸로, 당신은 JOIN ON table1.var1 = table2.var2 및 table1.var1 = table3.var3 및 그 반대로 할 필요가 있습니다.

당신은 테이블을 많이했다, 그래서 내가 할 수있는 최선을 다하겠습니다 : 나는 그들이이 가시화되지 않을 때, 그것은 모든 테이블과 열이 유지하기 매우 어렵습니다 말했듯이

SELECT 
    PARTY.PARTY_ID 
    , USER_LOGIN.USER_LOGIN_ID 
    , PERSON.FIRST_NAME 
    , CONTACT_MECH.CONTACT_MECH_ID 
    , POSTAL_ADDRESS.CITY 
    , TELECOM_NUMBER.CONTACT_NUMBER 
FROM `PARTY` 
    JOIN `USER_LOGIN` 
    ON PARTY.PARTY_ID = USER_LOGIN.PARTY_ID 
    JOIN `PERSON` 
    ON PARTY.PARTY_ID = PERSON.PARTY_ID 
    JOIN `PARTY_CONTACT_MECH` 
    ON PARTY.PARTY_ID = PARTY_CONTACT_MECH.PARTY_ID AND CONTACT_MECH.PARTY_ID = PARTY_CONTACT_MECH.CONTACT_MECH_ID 
    JOIN `TELECOM_NUMBER` 
    ON CONTACT_MECH.PARTY_ID = TELECOM_NUMBER.CONTACT_MECH_ID 
    JOIN `POSTAL_ADDRESS` 
    ON CONTACT_MECH.PARTY_ID = POSTAL_ADDRESS.CONTACT_MECH_ID 

,하지만 잘하면, 조인 진술은 당신이 그것을하는 방법을 볼 수 있습니다.

+0

이 작동하지 않습니다. 톰, 거시기, 해리가 파티에 참석하지 않으면 user_login 및 person 테이블에서 로그인 정보를 알 수 없습니다. 어떤 사람. OP는 더 많은 정보를 제공해야합니다. – Hogan