我有两个表,在运行时创建,它从一些完全不同的表中提取一些数据并加入和复合where子句,最后,我有这两个表的列如下:
TableCars:
Id Company Views
```````````````````````
01 Honda 12
32 audi 6
18 BMW 3
17 Vector 5
TableBikes:
Id Company Views
```````````````````````
01 Honda 3
32 audi 1
19 Kawasaki 2
注意:
公司名称和ID在这两个表中总是相同的,例如honda = 01
我想合并这两个表,因为我不想在名称(或id)中重复,我希望添加视图。有没有办法做到这一点,而不使用while循环和整个头发脱发?
结果表应该是这样的:
结果表
Id Company Views
``````````````````````
01 Honda 15
32 audi 7
18 BMW 3
17 Vector 5
19 Kawasaki 2
非常感谢提前。
ps:我试图检查谷歌,遇到“合并”条款,抬头看看,MSDN是我的头脑。我从不理解MSDN中的任何内容。想知道是否有其他人喜欢我。 子>
答案 0 :(得分:1)
select id, company, sum(views) views
from
(
select id, company, views
from tablecars
union all
select id, company, views
from tablebikes
) joined
group by id, company
您始终可以将SELECT语句转换为CREATE表语句:
select id, company, sum(views) views
into NewTableName
from
(
select id, company, views
from tablecars
union all
select id, company, views
from tablebikes
) joined
group by id, company
我通常不建议使用此方法来创建永久表。最好创建表并手动定义键,约束,默认值,索引。如果以这种方式创建它,您仍然可以稍后使用ALTER表语句添加所需的键。
如果你总是有两个基表,你需要这个“加入”的数据来查询/报告,和它必须与基表保持同步 - 那么你是什么真的是使用第一个SELECT语句的VIEW。
答案 1 :(得分:1)
你可以试试这个:
SELECT company, SUM(views) FROM
(SELECT company, views FROM first
UNION ALL
SELECT company, views FROM second) as t
GROUP BY company
如果您有任何问题,请告诉我