我有以下查询
SELECT name from login
(INNER JOIN connections on login.id = connections.receiver) AND (INNER JOIN connections on login.id = connections.sender)
WHERE (((connections.sender = '33') AND (connections.status = 'active'))
AND ((connections.receiver = '33') AND (connections.status = 'active')))
如果我的session_id(33)是接收者,并且如果我的session_id是发件人
,我试图获取所有发件人的姓名应该怎么做?
答案 0 :(得分:0)
您可以尝试使用IN()
SELECT `name` from login
WHERE `login`.`id` IN (SELECT `sender` FROM `connections` WHERE `sender` = '33' AND `status` = 'active')
OR `login`.`id` IN (SELECT `receiver` FROM `connections` WHERE `receiver` = '33' AND `status` = 'active')
答案 1 :(得分:0)
INNER JOIN connections on login.id = connections.receiver AND login.id = connections.sender
尝试而不是这个
(INNER JOIN connections on login.id = connections.receiver) AND (INNER JOIN connections on login.id = connections.sender)
答案 2 :(得分:0)
此查询应显示名称以及找到名称的两种方案中的哪一种。
select distinct name, status from (
select name , 'Receiver' status
from login, connections
where login.id = connections.receiver
and connections.receiver = '33'
and connections.status = 'active'
union
SELECT name , 'Sender' status
from login, connections
where login.id = connections.sender
and connections.sender= '33'
and connections.status = 'active'
)