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

CP1*_*985 17 mysql

我有一个名为表maintable3列:id,userid1userid2.

另一个名为userskeyed的表userid,并name作为列.

我想选择以下内容:

SELECT maintable.*, users.name AS username1, users.name AS username2 
FROM maintable, users 
WHERE ...
Run Code Online (Sandbox Code Playgroud)

基本上我想获得在所有列maintable列,并在此将以此为名字的末尾加上两列userid1,并userid2users表.

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

Pab*_*ruz 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)
Run Code Online (Sandbox Code Playgroud)

您可以在此处阅读有关MySQL JOIN语法的文档.


Pau*_*raj 5

像这样的东西,

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
Run Code Online (Sandbox Code Playgroud)