我正在使用联接从两个表中获取消息
表消息:ID,发件人,收件人,消息,密码
表OwnMessages: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
表消息中的所有内容都能正确显示,但是表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