我想要完成的是从ID中找到几个人的用户名。这个想法不必发送多个查询,因为我想从同一个表行的几个字段中找到用户名。
所以我通常发送的内容如下:
Select username FROM users where ID =10.
Select username FROM users where currentUser =15
Select username FROM users where previousUser =2.
我想做的是以下用英文而不是查询
编写的内容SELECT username1, username2, username3 from users
currenttable.ID = users.ID creates username1
currenttable.currentID = users.ID creates username2
currenttable.previousID = users.ID creates username2
答案 0 :(得分:0)
LEFT JOIN是你的朋友。尝试这样的事情:
SELECT
u1.username AS username1,
u2.username as username2,
u3.username AS username3
FROM users u1
left join users u2 ON u2.currentID = u1.ID
left join users u3 ON u3.previousID = u1.ID ;
答案 1 :(得分:0)
我可能不理解这个问题,但是从我收集的内容来看,你不能只使用这样的查询:
SELECT username FROM users u WHERE u.ID = 10 OR u.currentUser = 15 OR u.previousUser = 2;
答案 2 :(得分:0)
您可以使用MySQL UNION在一行中获取所有3个结果
SELECT username as username1 FROM users WHERE id = 1
UNION
SELECT username as username2 FROM users WHERE id = 2
UNION
SELECT username as username3 FROM users WHERE id = 3
或@Bernd Buffen已经回答,您可以使用LEFT JOIN