在 2 个或更多表上使用 SELECT

Posted

技术标签:

【中文标题】在 2 个或更多表上使用 SELECT【英文标题】:Using SELECT on 2 or more tables 【发布时间】:2015-12-08 22:40:30 【问题描述】:

考虑以下数据库:

浏览器表:

id | name        | description                     | stuff different from cars table
-------------------------------------------------------------------------------------
 1 | Chrome      | Some description
 2 | Firefox     | Some other description
 3 | Vivaldi     | Even more description

汽车表:

id | name        | description                      | stuff different from browsers table
-------------------------------------------------------------------------------------
 1 | Hyundai     | Some korean description
 2 | Ford        | Some ford ther description
 3 | Ferrari     | Even ferrari more description

我需要在 php 中获得的输出是 6 个带有 id、名称和描述的对象。我可以用join 关键字来做到这一点吗?如果是这样...如何,我已经悄悄地研究了几个小时。或者也许是不同的方法?

如果我要制作一张我需要获取的输出数据的表格,那就是:

id | name        | description                   
------------------------------------------------
 1 | Hyundai     | Some korean description
 2 | Ford        | Some ford ther description
 3 | Ferrari     | Even ferrari more description
 1 | Chrome      | Some description
 2 | Firefox     | Some other description
 3 | Vivaldi     | Even more description

【问题讨论】:

【参考方案1】:

这不是join 的用例。由于您希望两个表中的行一个接一个,而不是并排,您应该使用union all

SELECT id, name, description
FROM   browsers
UNION ALL
SELECT id, name, description
FROM   cars

【讨论】:

这可以用作 SELECT * FROM browsers UNION ALL SELECT * FROM cars 吗?考虑不同的表列? @MerdescuR。如果它们具有相同类型的相同数量的列,以相同的顺序(不管它们的名称) - 是的。如果不是,则不能 - 两个查询必须具有相同数量和类型的列。 @MerdescuR。不同的列名应该不起作用 UNION ALL

以上是关于在 2 个或更多表上使用 SELECT的主要内容,如果未能解决你的问题,请参考以下文章

如果存在 2 个或更多相等的结果,则将 select2 建议限制为 1

从 2 个或更多表中获取数据:选择还是加入?

Flask-msearch python ,在多对多表上添加 msearch

如何使用颤动在按钮网格中滑动/拖动 2 个或更多按钮

使用具有 2 个或更多水平的因素运行(混合模型)回归时,错误“对比只能应用于具有 2 个或更多水平的因素”

如何使用 UIPanGestureRecognizer 移动 2 个或更多 UIImageViews