我有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,但它不会在执行查询返回的结果中显示这一点。