我有一个名为maintable
的表格,其中包含3列:id
,userid1
和userid2
。
另一个名为users
的表格由userid
键入,并以name
作为列。
我想选择以下内容:
SELECT maintable.*, users.name AS username1, users.name AS username2
FROM maintable, users
WHERE ...
基本上我想获取maintable
行中的所有列,并在末尾添加两列,从userid1
中绘制userid2
和users
的名称} table。
我不确定如何为这样的查询格式化where子句。
答案 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