我有 2 个表,products
和 origins
产品:
p_id | name | origin_id
------------------------
1 | P1 | 1
2 | P2 | 2
3 | P3 | 1
起源:
o_id | name
-------------
1 | O1
2 | O2
我正在使用以下查询:
SELECT * FROM `products` LEFT OUTER JOIN `origins`
ON ( `products`.`origin_id` = `origins`.`o_id` ) LIMIT 2
我得到以下结果
p_id | name | origin_id | o_id | name
-----------------------------------------
1 | P1 | 1 | 1 | O1
3 | P3 | 1 | 1 | O1
我想知道LEFT OUTER JOIN
如何影响我获得第一行和第三行而不是第一行和第二行的结果?
最佳答案
当您不使用 ORDER BY
子句时,无法保证 SELECT
查询的特定顺序。
因此,当我们需要任何特定订单时,我们应该使用 ORDER BY
。
请参阅:MySQL Ref: What is The Default Sort Order of SELECT with no ORDER BY Clause
关于MySQL JOIN 与 LIMIT 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36664995/