在 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
Flask-msearch python ,在多对多表上添加 msearch