我有两张桌子(Users
和Pairs
)。 Pairs
表包含3列,一个ID,然后是user1ID和user2ID。
用户
ID firstName surname
------------------------------
1043 john doe
2056 jane doe
对
ID user1ID user2ID
------------------------------
1 1043 2056
然后我会查看使用select语句根据Pairs
表的ID获取用户详细信息:
SELECT users1.*, users2.*
FROM Pairs
JOIN Users users1 ON Pairs.user1ID = users1.IDNumber
JOIN Users users2 ON Pairs.user2ID = users2.IDNumber
WHERE Pairs.ID = 1
这会返回两个用户的正确详细信息,但是它们全部在一行上,如何让每个用户返回到Users
表中的单独行?< / p>
答案 0 :(得分:0)
SELECT users1.*, users2.*
FROM Pairs
JOIN Users
ON Pairs.user1ID = users.IDNumber
OR Pairs.user2ID = users.IDNumber
WHERE Pairs.ID = 1
只需在ON条件中使用OR语句而不是2个连接。
答案 1 :(得分:0)
IN也会起作用。
SELECT *
FROM Pairs p
JOIN Users u ON u.ID IN (p.user1ID, p.User2ID)
WHERE p.ID = 1