0

我有以下要使用 mySQL SQL 查询加入的 OFBiz 表:

  1. 用户登录
  2. PARTY_CONTACT_MECH
  3. CONTACT_MECH
  4. TELECOM_NUMBER
  5. 邮寄地址
  6. 派对

USER_LOGIN, PERSONPARTY_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"相关,并且还与第二组表相关,"CONTACT_MECH_ID"因此可以在这两个键上 JOINED"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 回答