Sql 如何组合具有不同列的多个表
我有三张桌子。我希望Sql 如何组合具有不同列的多个表,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有三张桌子。我希望school表设置major\u subject的数据,并在结果上获得minor\u subject 此外,由于此表没有列,因此也会为主修科目自动设置单元3.0 我尝试使用UNION,但由于major\u subject列与minor\u subject表不同,因此出现了错误 school major_subject | school_id | school_name |
school
表设置major\u subject
的数据,并在结果上获得minor\u subject
此外,由于此表没有列,因此也会为主修科目
自动设置单元3.0
我尝试使用UNION
,但由于major\u subject
列与minor\u subject
表不同,因此出现了错误
school major_subject
| school_id | school_name | | subj_name | date_offered |
----------------------------- ---------------------------------
| 1 | schoolA | | Business101 | 2021/01/01 |
| 2 | schoolB | | Marketing101 | 2021/01/01 |
| 3 | schoolC |
minor_subject
| school_id | subj_name | units | date_offered |
----------------------------------------------------
| 1 | Math | 1.0 | 2021/01/01 |
| 1 | English | 1.0 | 2021/01/01 |
| 1 | Science | 1.0 | 2021/01/01 |
| 2 | History | 2.0 | 2021/01/01 |
结果表如下所示:
| school_id | subj_name | units | date_offered |
---------------------------------------------------------
| 1 | Business101 | 3.0 | 2021/01/01 |
| 1 | Marketing101 | 3.0 | 2021/01/01 |
| 1 | Math | 1.0 | 2021/01/01 |
| 1 | English | 1.0 | 2021/01/01 |
| 1 | Science | 1.0 | 2021/01/01 |
| 2 | Business101 | 3.0 | 2021/01/01 |
| 2 | Marketing101 | 3.0 | 2021/01/01 |
| 2 | History | 2.0 | 2021/01/01 |
| 3 | Business101 | 3.0 | 2021/01/01 |
| 3 | Marketing101 | 3.0 | 2021/01/01 |
您可以
CROSS
joinschool
到major\u subject
获取两个表的所有行组合,然后使用UNION all
添加minor\u subject
中的行:
SELECT s.school_id, m.subj_name, 3.0 units, m.date_offered
FROM school s CROSS JOIN major_subject m
UNION ALL
SELECT school_id, subj_name, units, date_offered
FROM minor_subject
ORDER BY school_id
请参阅。结果:
请向我们展示您的尝试-我们始终希望看到您尝试了什么以及您是如何解决问题的。
> school_id | subj_name | units | date_offered
> --------: | :----------- | ----: | :-----------
> 1 | Business101 | 3.0 | 2021-01-01
> 1 | Marketing101 | 3.0 | 2021-01-01
> 1 | Math | 1.0 | 2021-01-01
> 1 | English | 1.0 | 2021-01-01
> 1 | Science | 1.0 | 2021-01-01
> 2 | History | 2.0 | 2021-01-01
> 2 | Marketing101 | 3.0 | 2021-01-01
> 2 | Business101 | 3.0 | 2021-01-01
> 3 | Business101 | 3.0 | 2021-01-01
> 3 | Marketing101 | 3.0 | 2021-01-01