我想使用mySQL SQL查询加入以下OFBiz表:
表USER_LOGIN, PERSON
和PARTY_CONTACT_MECH
都包含引用"PARTY_ID"
表中主键"PARTY_ID"
的外键PARTY
。
表PARTY_CONTACT_MECH, TELECOM_NUMBER
和POSTAL_ADDRESS
都具有引用表"CONTACT_MECH_ID"
中主键"PARTY_ID"
的外键CONTACT_MECH
。
由于PARTY_CONTACT_MECH
也与"PARTY_ID"
上面列出的第一组表相关,并且与"CONTACT_MECH_ID"
上的第二组表相关,因此两组或更确切地说是所有表因此,可以在这两个键"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.
答案 0 :(得分: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
就像我说的那样,当它们不可视化时很难跟上你所有的表和列,但希望join语句可以帮助你看到如何做到这一点。