在第二个表中的同一字段的连接中使用多个列

时间:2015-04-13 06:22:37

标签: mysql

请考虑以下事项:

**Table 1 - record**
id (int primary key),
addedby (int),
editedby (int)

**Table 2 - users**
id (int primary),
name (shorttext)

**Sample Records**
record
0 1 1
1 1 2

users
1 user1
2 user2

我需要的是联接以便能够显示以下内容:

record.id, users.addedby, users.editedby

我尝试了以下内容:

select record.id, users.name, users.name from record left join users on record.addedby=users.id left join users on record.editedby=users.id

然而,这种方法不合乎逻辑,所以我有点卡住了。

非常感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:2)

只需加入同一张桌子两次。没什么不寻常的。您只需对表进行别名即可独立引用它们。

select r.id, u1.name added, u2.name editor
  from record r
    inner join user u1
      on r.addedby = u1.id
    inner join user u2
      on r.editedby = u2.id

heres a demo

答案 1 :(得分:1)

使用别名:

select record.id, users1.name, users2.name 
from record 
left join users users1 on record.addedby=users1.id 
left join users users2 on record.editedby=users2.id