LEIT OUTER JOIN with LIMIT

时间:2014-02-17 14:49:26

标签: sql sqlite join limit

我正在尝试从表中获取一定数量的记录以及来自另一个表的相关数据:

SELECT a.*, b.* FROM tblA a
   LEFT OUTER JOIN tblB b ON a.id = b.target WHERE ... ORDER BY ... LIMIT 0,40

它有效,但问题是LIMIT似乎限制了结果的数量,而不是我在A中找到的记录数量:(

有没有办法让LIMIT只考虑来自A的记录?因为来自A的记录可能在B中有许多相关记录,我不想限制

1 个答案:

答案 0 :(得分:5)

尝试将限制放在子查询中,并加入该查询。

SELECT
  *
FROM
(
  SELECT * FROM tblA WHERE ... ORDER BY ... LIMIT 0,40
)
  AS a
LEFT JOIN
  tblB AS b
    ON a.id = b.target

许多RDBMS都支持这一点,我不知道SQLite。