将2列和其他列合并为1


Combine 2 columns as 1 with other columns as well

我有这个表

myid             his_id
  7                1
  1                7
  1                6
  1                3

但是它给了我4条记录而不是3条,我尝试使用mysqli"join","group by",但没有工作。

我想用纯php和jquery开发一个聊天系统,在上面的表中,用户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") ;

如果您想要myid和his_id的不同组合,则不能打印id, date_reply, 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注入。