gpt4 book ai didi

mysql - 如何根据另一个表的引用输出一列两次并使用不同的值?

转载 作者:行者123 更新时间:2023-11-29 06:31:53 24 4
gpt4 key购买 nike

我有两个表messageperson:

  1. message 表包含列 receiverIDsenderID
  2. person 表包含列 namepersonID

personIDreceiverID/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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com