MySQL:每个INNER JOIN的条件不同

时间:2014-02-15 13:51:41

标签: php mysql sql

我有以下mysql查询

SELECT n.* FROM notifications as n
  INNER JOIN notifications as nc ON ...  ...
     INNER JOIN following as f ON ...  ...
         WHERE
           (condition 1)
                OR
                  (condition 2)

我的猜测是我如何确保第一个内连接(nc)的条件1被评估,第二个内连接的条件2被评估(f)

1 个答案:

答案 0 :(得分:0)

最好的方法是将条件从WHERE子句移到ON子句。如果在Inner Join,WHERE和ON上以相同的方式工作,最好尽可能早地在查询中过滤掉数据。 因此,您的查询将如下所示: 选择n。* FROM FROM为n   INNER JOIN通知为nc ON ... ... AND(条件1)      INNER JOIN跟随f ON ......和(条件2)