MySQL 查询:在具有 OUTER JOIN 的 table 列上使用 LIMIT

MySQL query: use LIMIT on one table column having an OUTER JOIN

我有一个主用户数据库 table 和一个 "meta" table 外部连接。 基本上基本查询是

SELECT * FROM users_table 
LEFT OUTER JOIN meta_table ON users_table.id = meta_table.user_id 
ORDER BY users_table.id ASC

但我必须限制 users_table ID 列的结果。如果我使用标准的 LIMIT 子句,查询也会计算元值。

是否可以限制用户的 table ID 列并将元数据与连接相关联?

您可以尝试使用子查询。例如

SELECT * FROM meta_table 
         RIGHT OUTER JOIN (SELECT * FROM users_table 
                           WHERE status = 1
                           ORDER BY users_table.id ASC LIMIT 10) as tbl_user 
         ON meta_table.user_id = tbl_user.id

感谢@mergenchik 为我指明了正确的方向。

我最终得到了一个略有不同的查询,以在开始时保留用户 table 数据并能够在将来加入新的 table

SELECT * FROM 
    (SELECT * FROM users_table ORDER BY id ASC LIMIT 15) as users_table
LEFT OUTER JOIN meta_table 
ON meta_table.user_id = users_table.id