首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将2列与其他列合并为1

将2列与其他列合并为1
EN

Stack Overflow用户
提问于 2016-09-10 19:47:01
回答 1查看 66关注 0票数 1

我有一张桌子

代码语言:javascript
复制
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个记录,如果有任何帮助,将不胜感激,谢谢

对不起,我没有连接到我的系统,我正在使用智能手机,请原谅我下面格式错误的查询

代码语言:javascript
复制
$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") ;
EN

回答 1

Stack Overflow用户

发布于 2016-09-10 22:56:36

如果您想要myid和his_id的不同组合,则不能打印id、date_replied、status等,而只能打印两列- his_id、myid。

因为如果存在具有相同值的两列的多个行,则决定必须选择哪一行才能打印id、status等是另一回事。

因此,要打印哪两个用户正在聊天,可以使用myid和his_id。您可以稍后将它们用于任何其他信息。

现在,你要的代码是-

代码语言:javascript
复制
$sql = mysqli_query($connectn, "select distinct 
least(myid, his_id), greatest(myid, his_id) 
from chats");

是的,就像@iblamefish提到的,不要忘记保护你的代码不受SQL注入的影响。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39425728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档