MySQL查询:在具有OUTER JOIN的一个表列上使用LIMIT

时间:2015-09-22 10:00:53

标签: mysql left-join limit outer-join

我有一个主要用户数据库表和一个“meta”表到外连接。 基本上,基本的查询是

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子句,查询将计算元值。

是否可以限制用户的表ID列并将metas与join相关联?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

感谢@mergenchik指出了正确的方向。

我最终得到了一个稍微不同的查询,以便将用户表数据保留在开头,并且能够在将来加入新表

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