我想编写一个查询,以提取特定人员的姓名和地址。

名称存储在它们自己的表中。

地址存储在它们自己的表中。

它们之间有一个联结表,它有一个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/

10-12 18:43