我想编写一个查询,以提取特定人员的姓名和地址。
名称存储在它们自己的表中。
地址存储在它们自己的表中。
它们之间有一个联结表,它有一个addressID和一个personID。
SELECT name, address
FROM person
JOIN junctionTable ON person.personID = junctionTable.personID
JOIN personAddress ON junctionTable.personID = personAddress.addressID
WHERE junctionTable.personID = 2
这样可以得到正确的人但错误的地址。
这是因为在联结表中,我们具有:
addressID = 3 personID = 2
我该如何用正确的地址拉正确的人?任何指导将不胜感激,我对此非常陌生。
最佳答案
在第二个JOIN
中,您需要在两个表上都使用addressID
。
SELECT name, address
FROM person
JOIN junctionTable ON person.personID = junctionTable.personID
JOIN personAddress ON junctionTable.addressID = personAddress.addressID
WHERE junctionTable.personID = 2
关于mysql - 联结表的SQL查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53420369/