我有两个表Function
和message
:
person
表包含列message
和receiverID
senderID
表包含列person
和name
personID
和personID
可用于连接表格
我在两次输出name列时遇到麻烦,一次基于receiverID/senderID
,第二次基于receiverID
使用senderID
子句。
我只能根据WHERE
输出一次姓名。
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;
。
我只是不知道下一步该怎么做... SQL的新手。
答案 0 :(得分:2)
您需要将表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
答案 1 :(得分:0)
我想你需要这个:
SELECT
person.first_name AS senderFirstName,
(SELECT p2.first_name FROM person p2 WHERE p2.person_id =
m.receiver_id)receiveFirstName
FROM person p , message m
WHERE p.person_id = m.sender_id AND m.sender_id = 1;