我有一列名为member.id的列,该列存在于名为poster的表中,既是poster.sender又是poster.reciever。

我需要一个查询,该查询选择member.value,其中member.id是poster.sender或poster.reciever。

[我知道名字没有多大意义-我没有想到]

到目前为止,我有这个,它不起作用:

SELECT member.value
FROM ((poster INNER JOIN member ON poster.sender = member.ID)
INNER JOIN poster ON poster.sender= member.id

WHERE (member.id <> ?
AND (((poster.Sender = ?) OR (poster.reciever = ?))AND (poster.Status = 'Accepted'))


任何想法都会超级有帮助!

最佳答案

尝试这个:

SELECT
    member.value
FROM
    poster s INNER JOIN member ON s.sender = member.ID
INNER JOIN poster r ON r.receiver = member.id
WHERE
    member.id <> ?
AND
    (
        s.sender = ?
    OR r.reciever = ?
    )
AND
    s.status = 'Accepted'


您不能在没有别名的查询中两次使用表,因此别名为sr

还要根据您的要求,从发送者或接收者表或这两者中更改条件条件。

关于mysql - SQL:两次加入同一列的条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50006737/

10-10 09:45