MySQL查询显示未查看或过去10天内的记录

时间:2018-04-22 15:58:30

标签: mysql sql select mysqli

我有3个表(客户,消息和message_threads)。我想做一个查询,它返回第一次检查时没有从message_threads表读取的消息,和/或它们已被读取的IF,然后只显示过去10天的消息。

带有INTERVAL 10 DAY的OR未在ORDER BY中带来正确的记录。如果我删除OR条件然后它的工作原理。以下是我目前的问题。

SELECT 
    c.customer_name, 
    c.customer_profile_image, 
    m.message_id, 
    m.contract_id, 
    m.message_subject, 
    m.last_updated, 
    mt.date_created, 
    mt.date_viewed
FROM t_customers_tenants c 
JOIN t_customers_messages m 
    ON (c.customer_id = m.tenant_id) 
JOIN t_customers_message_threads mt 
    ON (m.message_id = mt.message_id)                                               
WHERE m.customer_id = 7866                                                 
    AND mt.created_by = 'tenant'
    AND (mt.date_created > mt.date_viewed OR mt.date_created >= DATE(NOW()) - INTERVAL 10 DAY)
GROUP BY m.message_id
ORDER BY mt.message_thread_id DESC

当包含OR语句时,似乎ORDER BY不起作用。

非常感谢你的帮助。我已经在下面包含了SQLFiddle,你可以看到最后一条记录的函数00:00:00作为date_viewed,但它不会在执行查询返回的结果中显示这一点。

  

http://sqlfiddle.com/#!9/3e5e05

enter image description here

0 个答案:

没有答案