MySQL查询:对具有外部联接的一个表列使用限制
我有一个主用户数据库表和一个要外部连接的元表。 基本上,基本查询是MySQL查询:对具有外部联接的一个表列使用限制,mysql,left-join,limit,outer-join,Mysql,Left Join,Limit,Outer Join,我有一个主用户数据库表和一个要外部连接的元表。 基本上,基本查询是 SELECT * FROM users_table LEFT OUTER JOIN meta_table ON users_table.id = meta_table.user_id ORDER BY users_table.id ASC 但是我必须限制users\u table ID列上的结果。如果我使用标准LIMIT子句,查询也将计算元值 是否可以限制用户的表ID列并将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\u table ID列上的结果。如果我使用标准LIMIT子句,查询也将计算元值
是否可以限制用户的表ID列并将Meta与联接关联?您可以尝试使用子查询。比如说
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为我指明了正确的方向 最后,我使用了一个稍微不同的查询,以在开始时保留用户表数据,并在将来能够加入一个新表
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
您所说的查询也将计算元值是什么意思?您可以从users\u表中进行限制,然后离开join meta\u表,但结果看起来是一样的。请举例说明。如果我在查询结束时使用LIMIT 5,它会将第一行计算为user+first meta。但其他4个结果将是第一个用户的元数据,不会获取其他用户。我希望获取5个用户+他们对代码段的Metasthank。然而,它现在获取所有元,而不是超出限制的匹配用户。与前10个用户相关的Meta已获得相关用户数据。然后只包含NULL@a-编码器:抱歉,使用了不正确的连接,请尝试使用正确的外部连接,也更新了应答几乎在那里:现在正确获取,但不适用于WHERE子句。例如,状态为1的第二个用户是15。即使在条款中,该查询也不会返回他。如果您使用用户表上的where,然后将其添加到子查询中,例如,将子查询更改为SELECT*FROM users\u table where status=1 ORDER BY users\u table.id ASC LIMIT 10