我有两个表message
和person
:
message
表包含列receiverID
和senderID
person
表包含列name
和personID
personID
和 receiverID/senderID
可用于连接表
我在两次输出名称列时遇到问题,一次基于 receiverID
,第二次基于使用 WHERE
子句的 senderID
。
我只能根据 personID = senderID
输出一次姓名。
SELECT person.first_name AS senderFirstName,
(SELECT person.first_name FROM person, message WHERE person_id = receiver_id)
FROM person, message WHERE person_id = sender_id AND sender_id = 1;
这会产生错误 1242 (21000):子查询返回超过 1 行
。
我只是不知道下一步该尝试什么...对 SQL 非常陌生。
最佳答案
您需要将表person
连接到表message
两次:
select s.name, ...
from message m
inner join person s on m.senderid = s.personid
inner join person r on m.receiverid = r.personid
where m.senderid = 1
关于mysql - 如何根据另一个表的引用输出一列两次并使用不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55783751/