Mysql 重命名SQL联接查询返回的值

Mysql 重命名SQL联接查询返回的值,mysql,sql,Mysql,Sql,假设我们有以下查询 SELECT b.user_name, c.user_name, msg FROM user_messages a JOIN users b ON b.user_id = a.user_from JOIN users c ON c.user_id = a.user_to WHERE a.user_from = 'ds4EpcrmUt' OR a.user_to = 'ds4EpcrmUt' 当从NodeJS查询时,我将只收到一个用户名,因为两个返回值具有相同的名称

假设我们有以下查询

SELECT b.user_name, c.user_name, msg 
FROM user_messages a
JOIN users b ON b.user_id = a.user_from 
JOIN users c ON c.user_id = a.user_to 
WHERE a.user_from = 'ds4EpcrmUt' 
OR a.user_to = 'ds4EpcrmUt'
当从NodeJS查询时,我将只收到一个用户名,因为两个返回值具有相同的名称

有没有办法像下面这样重命名它们的返回值

b.user_name = user_from
c.user_name = user_to
试试下面-

SELECT b.user_name as user_from, c.user_name as user_to, msg 
FROM user_messages a
JOIN users b ON b.user_id = a.user_from 
JOIN users c ON c.user_id = a.user_to 
WHERE a.user_from = 'ds4EpcrmUt' 
OR a.user_to = 'ds4EpcrmUt'

当您引用相同的列名时,您需要不同的列名别名,例如user_name1和user_name1或您喜欢的列名别名:

SELECT b.user_name user_name1, c.user_name user_name2, msg 
FROM user_messages a
JOIN users b ON b.user_id = a.user_from 
JOIN users c ON c.user_id = a.user_to 
WHERE a.user_from = 'ds4EpcrmUt' 
OR a.user_to = 'ds4EpcrmUt'

非常感谢您的快速回复。刚刚开始加入我的Discord克隆,并陷入了这个问题。与上面的回答相同。感谢您的快速反馈,接受了他的第一个答案。@EricE。没问题。。(“试试下面”似乎不是解释…)无论如何,你可以认为我的答案是有用的。是的,当然会!我的问题非常具体,下面的尝试演示了如何使用别名从select返回。也谢谢你的解释!(我如何评价有用?只是向上投票?)当你对提议的解决方案给出一个小的解释时,这很好
SELECT b.user_name as user_from, c.user_name as user_to, msg 
FROM user_messages a
JOIN users b ON b.user_id = a.user_from 
JOIN users c ON c.user_id = a.user_to 
WHERE a.user_from = 'ds4EpcrmUt' 
OR a.user_to = 'ds4EpcrmUt'