如何根据主表中的值从另一个表中选择两个附加列?

时间:2011-02-15 17:27:11

标签: mysql

我有一个名为maintable的表格,其中包含3列:iduserid1userid2

另一个名为users的表格由userid键入,并以name作为列。

我想选择以下内容:

SELECT maintable.*, users.name AS username1, users.name AS username2 
FROM maintable, users 
WHERE ...

基本上我想获取maintable行中的所有列,并在末尾添加两列,从userid1中绘制userid2users的名称} table。

我不确定如何为这样的查询格式化where子句。

2 个答案:

答案 0 :(得分:17)

您需要与用户加入两次:

SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON (m.userid1 = u1.userid)
INNER JOIN users u2 ON (m.userid2 = u2.userid)

您可以阅读有关MySQL JOIN语法here

的文档

答案 1 :(得分:4)

这样的事,

select m.*,
(select u1.name from users as u1 where m.userid1 = u1.userid) as username1,
(select u2.name from users as u2 where m.userid2 = u2.userid) as username2
from 
maintable as m