Mysql 从同一列中选择两个值
我试图在查询的一行中选择两个用户名,一个称为“username”,另一个称为“username2”。这是我在atm机上的密码。users表使用用户id的主键Mysql 从同一列中选择两个值,mysql,sql,select,pdo,Mysql,Sql,Select,Pdo,我试图在查询的一行中选择两个用户名,一个称为“username”,另一个称为“username2”。这是我在atm机上的密码。users表使用用户id的主键 SELECT r.report_id, r.poster_id, r.reporter_id, u.username, (2nd username) FROM reports r, users u WHERE r.report_id = :report_id AND r.reporter_id = u.use
SELECT
r.report_id,
r.poster_id,
r.reporter_id,
u.username,
(2nd username)
FROM reports r,
users u
WHERE r.report_id = :report_id
AND r.reporter_id = u.user_id
AND r.poster_id = u.user_id
您需要两次加入表
user
SELECT
r.report_id,
r.poster_id,
r.reporter_id,
u.username AS ReporterName,
b.userName as PosterName
FROM
reports r
INNER JOIN users u
ON r.reporter_id=u.user_id
INNER JOIN users b
ON r.poster_id=b.user_id
WHERE
r.report_id=:report_id
下面是MySQL的代码
SELECT
r.report_id,
r.poster_id,
r.reporter_id,
u.username,
u.username username2,
FROM reports r,
users u
WHERE r.report_id = :report_id
AND r.reporter_id = u.user_id
AND r.poster_id = u.user_id
我想在同一行中返回username1=r.reporter\u id=u.user\u id和username2r.poster\u id=u.user\u id。这将给出无效的结果。因为有两列需要从另一个表
user
中获取值,所以您需要连接它两次。还有一件事,我怎样才能添加一个可选子句,比如说它必须在user表中找到reporter\u id,但是poster\u id可以是可选的,无论是否找到它?使用LEFT join
。您的意思是poster\u Id
是可选的。对吧?<代码>在r.poster_id=b.user_id上左加入用户b