我有一张桌子
myid his_id
7 1
1 7
1 6
1 3但是它给了我4条记录,而不是3条,我试着使用mysqli "join“,"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") ;发布于 2016-09-10 22:56:36
如果您想要myid和his_id的不同组合,则不能打印id、date_replied、status等,而只能打印两列- his_id、myid。
因为如果存在具有相同值的两列的多个行,则决定必须选择哪一行才能打印id、status等是另一回事。
因此,要打印哪两个用户正在聊天,可以使用myid和his_id。您可以稍后将它们用于任何其他信息。
现在,你要的代码是-
$sql = mysqli_query($connectn, "select distinct
least(myid, his_id), greatest(myid, his_id)
from chats");是的,就像@iblamefish提到的,不要忘记保护你的代码不受SQL注入的影响。
https://stackoverflow.com/questions/39425728
复制相似问题