我正在使用联接从两个表获取消息
表消息: ID、发送者、接收者、消息、密码
表自己的消息: ID、发送者、接收者、消息、密码
查询:
SELECT DISTINCT(Messages.ID) as F_id,
Messages.Message as F_message,
Messages.Password as F_password,
Messages.Receiver as F_receiver,
OwnMessages.ID as O_id,
OwnMessages.Message as O_message,
OwnMessages.Password as O_password,
OwnMessages.Sender as O_sender
FROM Messages
JOIN OwnMessages on Messages.Receiver = OwnMessages.Sender
WHERE Messages.Receiver = 8 AND OwnMessages.Sender = 8
Messages 表中的所有内容都显示正确,但 OwnMessages 表中我得到第一行 30 次。有什么想法吗?
最佳答案
SELECT DISTINCT
Messages.ID as F_id,
Messages.Message as F_message,
Messages.Password as F_password,
Messages.Receiver as F_receiver,
OwnMessages.ID as O_id,
OwnMessages.Message as O_message,
OwnMessages.Password as O_password,
OwnMessages.Sender as O_sender
FROM Messages
INNER JOIN OwnMessages on Messages.Receiver = OwnMessages.Sender
WHERE Messages.Receiver = 8 AND OwnMessages.Sender = 8
或
SELECT Messages.ID as F_id,
Messages.Message as F_message,
Messages.Password as F_password,
Messages.Receiver as F_receiver,
OwnMessages.ID as O_id,
OwnMessages.Message as O_message,
OwnMessages.Password as O_password,
OwnMessages.Sender as O_sender
FROM Messages
INNER JOIN OwnMessages on Messages.Receiver = OwnMessages.Sender
WHERE Messages.Receiver = 8 AND OwnMessages.Sender = 8
GROUP BY Messages.ID
HAVING COUNT(*) = 1
关于mysql - SQL Join 给出 30 个相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28925561/