面试问题:如何一次性将sql中的多个表连接在一起

ycl3bljg  于 2021-08-01  发布在  Java
关注(0)|答案(2)|浏览(296)

假设你有许多表格,名字是company1,company2等等,直到company1000。结构如下:

Company 1
product cost($)
A        C1A
B        C1B
C        C1C

有1000张这样的table。所有公司销售3种产品a、b、c。你将如何比较你的公司说520公司与所有其他1000家公司。
所有这些表都在数据库下 Companies 如何在sql中同时联接所有这些表?
我非常了解联接,但我知道一次只能联接两个表。有没有一种方法可以在sql中将多个表连接在一起
预期产量

product cost($)_Company1  cost($)_Company2   cost($)_Company3   
A        C1A                     C2A          C3A
B        C1B                     C2B          C3B
C        C1C                     C2C          C3C  and so on for all 1000 companies

注意:在组合预期输出中,\公司名称附加到成本列名后,以标识与成本相对应的公司
我在采访中被问到这个问题,你将如何一次性做到,我不知道答案。有人能帮忙吗。表的结构与所有表中列的名称相同 product 以及 cost($) 作为列名

bsxbgnwa

bsxbgnwa1#

试试下面这个例子。联接表没有限制。

SELECT Company1.Product,
Company1.cost($) 'cost($)_Company1',
Company2.cost($) 'cost($)_Company2',
Company3.cost($) 'cost($)_Company3',
CompanyN.cost($) 'cost($)_CompanyN'
FROM Company1
INNER JOIN Company2 ON Company1.Product = Company2.Product
INNER JOIN Company3 ON Company1.Product = Company3.Product
INNER JOIN CompanyN ON Company1.Product = CompanyN.Product
fslejnso

fslejnso2#

您可以使用simple join ```
select
t1.product,
t1.cost as 'cost($)_Company1',
t2.cost as 'cost($)_Company2',
t3.cost as 'cost($)_Company3',
from company1 t1

join company2 t2
on t1.product = t2.product

join company3 t3
on t2.product = t3.product
order by
t1.product

相关问题