我有一个表名= wspollokator
-----------------
| user1 | user2 |
-----------------
| 1 | 3 |
-----------------
| 3 | 1 |
-----------------
| 7 | 0 |
-----------------
| 8 | 10 |
-----------------
| 9 | 0 |
-----------------
| 10 | 8 |
-----------------
我知道如何像上面那样显示它:
SELECT p1.user1, p1.user2
FROM wspollokator p1
LEFT JOIN wspollokator p2 ON p1.user1 = p2.user2
WHERE p1.user1 <> p1.user2
但这只是一个只有用户ID的关系表
在另一个表名称中:zakwalifikowani 我有user1和user2的firstnames和lastnames。关键是user1 user2
---------------------------------------------------
|firstname1 | lastname1 | firstname2 | lastname2 |
---------------------------------------------------
| Tom | Hopkins | Mike | Ariston |
---------------------------------------------------
| Mike | Ariston | Tom | Hopkins |
---------------------------------------------------
| Marlon | Nickolson | | |
---------------------------------------------------
| John | Nash | Jason | Lin |
---------------------------------------------------
| Johny | Bride | | |
---------------------------------------------------
| Jason | Lin | John | Nash |
---------------------------------------------------
如何使用列user1和user2像上面一样显示它?我认为我需要使用上面的查询,因为这个查询允许我将人们连接成对
答案 0 :(得分:0)
在zakwalifikowani表中需要一个“外键”才能在“firstname1 = Tom”(例如)上加入“user1 = 1”。
答案 1 :(得分:0)
我将假设您的第一个查询确实是:
SELECT p1.user1, p1.user
FROM wspollokator p1
WHERE p1.user1 <> p1.user2;
left join
对查询没有任何作用。
要获取名称,您需要两个连接。这是一个例子:
SELECT w1.FirstName as FirstName1, w1.LastName as LastName1,
w2.FirstName as FirstName2, w2.LastName as LastName2
FROM wspollokator p1 LEFT JOIN
zakwalifikowani w1
ON p1.user1 = w1.user LEFT JOIN
zakwalifikowani w2
ON p1.user2 = w2.user
WHERE p1.user1 <> p1.user2;