消息讨论查询

时间:2016-05-03 13:31:15

标签: mysql sql orm eloquent query-builder

我尝试创建一个讨论系统,在两个用户之间按时间按照图像使用SQL显示消息,例如,如果用户10希望用户45看到他的消息,这是我的表结构:

消息(id(PK),sender_id(FK_USER),receiver_id(FK_USER),主题,内容,created_at,updated_at);

我尝试了这个SQL查询,但它没有显示我想要的内容:

select s.id,
       s.subjet,
       d.source_id as `source`,
       d.id,
       d.subject 
 from messages s,
      messages d
where s.destination_id=d.source_id 
  and d.source_id=s.destination_id 
  and s.source_id=202 
order by created_at asc;

Example

2 个答案:

答案 0 :(得分:1)

如果我正确理解您的表格结构和要求,您可以尝试以下内容 -


SELECT name, columnA + columnB AS price
FROM house
WHERE NOT (columnA IS NULL OR columnB IS NULL)
GROUP BY name, columnA
ORDER BY price

或者像这样 -

SELECT *
  FROM MESSAGES
 WHERE SENDER_ID IN (10, 45)
   AND RECEIVER_ID IN (10, 45)
 ORDER BY CREATED_AT

默认情况下,订购将以ASC方式完成,因此无需提及。

答案 1 :(得分:1)

我认为你需要一个精选案例(我已经为演示留下了所有专栏)

 select s.id, 
    case s.sender_id when 202 then s.subject else '' end, 
    case s.receicer_id when 202 then s.subject else '' end, 
    s.subject, s.content, s.created_at
from message s
where s.sender_id = 202
order by s.created_at ASC