我会尽力解释我的问题。我使用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