我想查询只显示一个id
中的一个数据我的查询是
SELECT *
FROM messages
WHERE sender_id='$memberid'
AND reciver_id IN($frens)
OR reciver_id='$memberid'
AND senderid IN($frens)
GROUP BY sender_id,
reciever_id
ORDER BY datetime DESC
此查询显示两列的单独值。
假设我有48个作为memberid并且它在两个列中都存在,它显示48次n我只想要它一次。
请帮帮我。
提前感谢。
答案 0 :(得分:0)
试试这个,我不是PHP家伙。
SELECT *
FROM messages
WHERE (sender_id='$memberid' AND reciver_id IN($frens))
OR (reciver_id='$memberid' AND sender_id IN($frenss))
GROUP BY sender_id
ORDER BY datetime DESC
我只是想知道为什么你有选择*,&你怎么没有得到任何错误。 我只是按照你的代码&条件附加()。
答案 1 :(得分:0)
使用括号对过滤器选项进行分组/优先排序。
SELECT *
FROM messages
WHERE (sender_id='$memberid' <-- added an open parenthesis
AND reciver_id IN($frens)) <-- added a close parentheis
OR (reciver_id='$memberid' <-- added an open parenthesis
AND sender_id IN($frens)) <-- added a close parentheis
ORDER BY datetime DESC
我删除了group by
条款,因为你的选择没有聚合函数。