所以我有一个简单的DB_Schema, USER_INFO表,列用户名和全名, 用户名是此表的主键 即可。 我正在建立一个简单的聊天网站。我还有一个 MESSAGES表,它有4列,
我试图使用 INNER JOIN 获取消息,发件人(全名)和接收者(全名)的详细信息,我的SQL查询是:
SELECT message,sender,user_info.name as sender,receiver,user_info.name as receiver
FROM lets_chat.privatechat
INNER JOIN user_info ON privatechat.sender = user_info.username
INNER JOIN user_info ON privatechat.receiver = user_info.username;
这导致错误:错误代码1066:不唯一表/别名:' user_info' 。
有人可以帮助我纠正错误或让我正确的SQL语句来做到这一点?我使用 MYSQL DB 。
我擅长SPRING-HIBERNATE,我能够正确地完成它,只需要SQL帮助。 提前感谢
更新答案
选择PVC.message,UI1.name为发件人,UI2.name为收件人
FROM lets_chat.privatechat AS PVC
INNER JOIN user_info AS UI1 ON UI1.username = PVC.sender
INNER JOIN user_info AS UI2 ON UI2.username = PVC.receiver;
这很有用。谢谢@ plaidDK
答案 0 :(得分:2)
您需要为联接提供一个唯一的别名,并将您的列引用到您的表ALIAS,可能是这样的:您可以将列更正为正确的表别名,因此我不知道列的来源< /强>
SELECT PVC.message, PVC.sender, UI1.name as sender, PVC.receiver, UI2.name as
receiver
FROM lets_chat.privatechat AS PVC
INNER JOIN user_info AS UI1 ON privatechat.sender = UI1.username
INNER JOIN user_info AS UI2 ON privatechat.receiver = UI2.username;