我會盡力解釋我的問題。我使用MYSQL/PHP來從與結構兩個表看起來像下面的數據:根據表MYSQL加入檢索結果
table A
+---------+------------+
| userid | username |
+---------+------------+
| 1 | john |
| 2 | doe |
| 3 | lewis |
+---------+------------+
table B
+---------+------------+-----------+
| id |from_userid | to_userid |
+---------+------------+-----------+
| 1 | 1 | 3 |
| 2 | 3 | 2 |
| 3 | 1 | 2 |
| 4 | 2 | 1 |
+---------+------------+-----------+
Am trying to achieve the following:
+---------+------------+----------------------+
| id |sender username| receiver username |
+---------+------------+----------------------+
| 1 | john | lewis |
| 2 | lewis | doe |
| 3 | john | doe |
| 4 | doe | john |
+---------+------------+----------------------+
正如你所看到的,而不是返回發送者或接收者的用戶ID,我回到自己的用戶名A.
我可以在這種情況下使用左或右連接嗎?在此先感謝
我沒有測試這個,但它應該工作。它使用'INNER JOIN's,我認爲總是有一個「from」和「to」,這些記錄總是存在於'tableA'中。 – cambraca 2011-12-22 17:36:12
「from」和「to」在表A中不存在。表B在提交表單時獲取「from_userid和to_userid」的值。表A中包含的字段是嚴格用戶名和用戶名。你懷疑這裏有錯誤的數據庫設計嗎? – user1112155 2011-12-22 17:40:26
不知道你在問什麼。這個查詢只獲得表A的用戶名。查看'ON'子句,第一個表示表B的'from_userid'字段應該與'sender'表(即表A)中的'userid'字段匹配。第二個是相似的。數據庫設計對我來說看起來不錯 – cambraca 2011-12-22 17:45:01