我有这张桌子
myid his_id
7 1
1 7
1 6
1 3
但它给了我4条记录而不是3条记录,我尝试使用mysqli"加入" ," group by"但没有工作。
我正在尝试使用纯php和jquery开发一个聊天系统,在上面的d表中,用户7与用户1聊天,用户1与用户7聊天,所以我希望将其视为同一个聊天和其余的2(用户1与用户6聊天,用户1与用户3聊天)
我希望它只给我3条记录而不是4条记录,请给予任何帮助,谢谢,
抱歉我没有连接到我的系统,即时通讯使用智能手机,请原谅我在下面的格式错误的查询
$sql = mysqli_query($connectn, "select a.id, b.his_id, a.myid, a.status, a.date_replied FROM chats a JOIN chats b ON b.myid=b.myid WHERE b.his_id='$regestered_id' or b.myid='$regestered_id' GROUP BY b.his_id ORDER BY a.id DESC") ;
答案 0 :(得分:0)
如果你想要myid和his_id的不同组合,你不能打印id,date_replied,status等,而只是两列 - his_id,myid。
因为如果有多个行,其中两列具有相同的值,则决定必须选择哪一行才能打印ID,状态等是另一行。
因此,只需打印两个用户正在聊天,请使用myid和his_id。您可以稍后将它们用于任何其他信息
现在,您想要的代码是 -
$sql = mysqli_query($connectn, "select distinct
least(myid, his_id), greatest(myid, his_id)
from chats");
是的,就像@iblamefish提到的那样,不要忘记保护你的代码免受SQL注入。