0

mySQL SQL クエリを使用して結合したい次の OFBiz テーブルがあります。

  1. USER_LOGIN
  2. PARTY_CONTACT_MECH
  3. CONTACT_MECH
  4. TELECOM_NUMBER
  5. POSTAL_ADDRESS
  6. パーティ

テーブルUSER_LOGIN, PERSONとすべてには、テーブル内の主キーを参照するPARTY_CONTACT_MECH外部キーが含まれています。"PARTY_ID""PARTY_ID"PARTY

テーブルPARTY_CONTACT_MECH, TELECOM_NUMBERPOSTAL_ADDRESSすべてには、テーブル内"CONTACT_MECH_ID"の主キーを参照する外部キーがあります。"PARTY_ID"CONTACT_MECH

は上記PARTY_CONTACT_MECHの表の最初のセットに"PARTY_ID"も関連し、 の表の 2 番目のセットにも関連しているため、これら 2 つのキーおよび"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.
4

1 に答える 1

0

主キーを持つすべてのテーブルを、他のテーブルを呼び出す外部キーに結合したいと考えています。外部キーは、本質的に他のテーブルの主キーです。これは、余分な列をテーブルに追加する代わりに、外部キーを使用するためです。

一部のテーブルで、複数の値を結合したいと考えていました。これにより、JOIN ON table1.var1 = table2.var2 AND 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

前述したように、視覚化されていないすべてのテーブルと列についていくのは非常に困難ですが、ジョイン ステートメントがその方法を理解するのに役立つことを願っています。

于 2013-04-25T16:54:30.537 に答える