0

我正在尝试做的事情

我有两张表,一张用于事件,一张表示是否已看到每个事件 ID。我想创建一个查询来连接 event.id 和 seen.eventid 上两个。但是,我只想返回尚未看到的行按它们的新近程度排序。

我现在拥有的

这是用于返回所有已经看到的事件的查询:

SELECT *
FROM `events`
JOIN `seen` ON (`seen`.`event_id`=`event`.`id`)
    //This is not part of the question but I might as well paste the entire code
    //WHERE `user_id`='34'
    //AND (`meta_id`='45' OR `meta_id`='37' OR `meta_id`='43')
GROUP BY `event_id`
ORDER BY `event`.`date` DESC

如何反转查询,以使返回的是event与此查询匹配的行?

4

1 回答 1

2

我们不知道你的表结构,所以我只是猜测......

SELECT *
  FROM events e
  LEFT
  JOIN seen s
    ON s.event_id = e.id)
   AND s.user_id=34
 WHERE e.meta_id IN (45,37,43)
   AND s.event_id IS NULL
 GROUP 
    BY e.event_id
 ORDER 
    BY e.date DESC
于 2013-09-06T14:09:00.877 回答