我有一个这样的SQL语句:

$sql = "SELECT *, films.category AS filmCategory FROM films LEFT OUTER JOIN items ON items.unique = films.ref ORDER BY unique ASC LIMIT 0, 4";


那行不通。它无需ORDER BYLIMIT部分即可工作,如下所示:

$sql = "SELECT *, films.category AS filmCategory FROM films LEFT OUTER JOIN items ON items.unique = films.ref";


我似乎找不到增加ORDER BYLIMIT来仅从films表中获取前4个项目的方法。之后,仅应从连接的表中从这四个项目的另一个表中获取更多信息。如何以正确的方式完成?

最佳答案

如果要限制特定的表,则必须使用子查询。

SELECT *, films.category AS filmCategory
FROM (SELECT *
      FROM films
      ORDER BY ref ASC
      LIMIT 4) films
LEFT OUTER JOIN items
ON items.`unique` = films.ref
ORDER BY `unique` ASC

10-06 10:49