Php 在查询中使用条件语句为join和group by查找适当的列?

Php 在查询中使用条件语句为join和group by查找适当的列?,php,mysql,Php,Mysql,我正在开发一个私人信息系统,它看起来更像是一个社交网络信息系统。没有标题,相关的PM像论坛线程一样显示 我有两张桌子记录pms pm_sessions : pm_session , sender , receiver, pm_counter pm : id , pm_session , text , date , sender pm_会话就像pm的包装器一样工作 现在在用户配置文件中,我想显示从当前用户发送或接收pm的用户列表 问题是我不想分别显示接收者和发送者用

我正在开发一个私人信息系统,它看起来更像是一个社交网络信息系统。没有标题,相关的PM像论坛线程一样显示

我有两张桌子记录pms

pm_sessions  : pm_session  , sender , receiver, pm_counter 

pm           : id , pm_session  , text , date , sender
pm_会话就像pm的包装器一样工作

现在在用户配置文件中,我想显示从当前用户发送或接收pm的用户列表

问题是我不想分别显示接收者和发送者用户,我想将所有与我的人交谈的用户都放在一个列表中

这就是我的想法,我现在不知道所有IF语句都是这样工作的

$current_user = $_session['userid'];
    $query = " 

 select pms.sender , pms.receiver, 
 count(pms.otheruser) as total_dialogs_with_this_user , 
 u.username as other_user_name  , u.id as other_user_id

 from pm_session pms

   //// joining to the users table on the other user id
   if($current_user = pms.sender)
     JOIN users u on pms.receiver= u.id 
   if($current_user = pms.receiver)
     JOIN users u on  pms.sender = u.id 

  WHERE pms.reciver = $current_user || pms.sender = $current_user

   /// grouping by other user id
   if($current_user = pms.sender)
     group by pms.receiver
   if($current_user = pms.receiver)
     group by pms.sender ";
我希望结果是这样的

HELLO max ... you have been talking to :

ross... 3 dialogs
joey ... 4 dialogs
chandler ... 5 dialogs
我可以很容易地用两个查询来写这篇文章,一个用于接收者,另一个用于发送者 但是就像我说的,我不想把它们分开

选择CASE$current\u user
当pms.sender之后是pms.receiver
当pms.receiver然后是pms.sender时
以其他用户id结尾,
u、 用户名作为其他用户名,
将(pms.otheruser)计算为与此用户的对话总数
从pm_会议开始,作为pm
以u的身份加入用户
ON u.id=案例$current\u用户
当pms.sender之后是pms.receiver
当pms.receiver然后是pms.sender时
结束
按其他用户id、其他用户名称分组

mysql允许条件if-else syntex您可以使用它进行查询thanx您似乎只检查当前用户的pms.senders列?我错了吗?谢谢,效果很好,我有一个关于条件语句的问题,它们会对查询性能产生重大影响吗?@max:它们会产生影响,但不太可能有意义。试试看?