【问题标题】:mysql: getting last conversation of a member with all members in mysqlmysql:获取成员与mysql中所有成员的最后一次对话
【发布时间】:2017-09-08 16:25:44
【问题描述】:

我需要与 member_id 1 的所有成员进行最后一次对话。 请查看以下屏幕截图:

here are the tables. members and conversations

how i want

【问题讨论】:

  • member_id = 1 ..但是作为发送者还是接收者? ..
  • sender_id 或receiver_id
  • 您可以将这两个表导出为 sql 文件并给我们链接,以便我们可以尝试一下吗?

标签: mysql sql database message messenger


【解决方案1】:
SET @member = 1; /* change to the member id you want to select*/

SELECT c.member_id,
       m.first_name,
       m.last_name,
       c.message,
       c.msg_time
  FROM (SELECT member_id,
               message,
               msg_time,
               @row_number := CASE WHEN @convid = conv_id
                                   THEN @row_number + 1
                                   ELSE 1
                               END AS rnum,
               @convid := conv_id as grp_id
          FROM (SELECT CASE WHEN sender_id = @member
                            THEN CONCAT(sender_id, receiver_id)
                            WHEN receiver_id = @member
                            THEN CONCAT(receiver_id, sender_id)
                        END conv_id,
                       CASE WHEN sender_id = @member
                            THEN receiver_id
                            WHEN receiver_id = @member
                            THEN sender_id
                        END member_id, 
                       c_id, 
                       message, 
                       msg_time       
                  FROM conversation
                 WHERE receiver_id = @member
                    OR sender_id = @member
               ) conv
        ORDER BY conv_id, 
                 msg_time DESC
       ) c
  JOIN members m
    ON c.member_id = m.member_id
   AND rnum = 1
 ORDER BY c.msg_time;

结果

member_id first_name last_name message      msg_time
4         Washim     Jahan     are u there? 1504886437
5         mujahid    Jahan     yeah!        1504886537
3         Monayem    Jahan     koi          1504887437
2         Baijed     Khan      working      1505996437

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多