MySQL JOIN 与 LIMIT 查询结果

标签 mysql

我有 2 个表,productsorigins

产品:

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/

相关文章:

php - 用php计算不同数据库的产品总价

os x更新后Mysql表名小写

mysql - 需要在 Mac El Capitan 上安装旧版本的 MySQL

php - Symfony2 中的 Doctrine2 : How can I see which object-call leads into a query?

php - 真正准备好时会默默失败,模仿时会有效

mysql - 需要有关几乎有效的 JOIN 查询的帮助

javascript - HTML 表单将数据 POST 到 MySQL

mysql - CakePHP - 在关系 HABTM 中具有复合名称的表

Python 和 MySQLdb

mysql - 使用唯一 ID 防止重复/恶意表单输入