我有2个表-一个表包含多行,第二个表包含一行,是否可以将它们合并在一个表中并包含多行?
我想合并两个没有公共字段的表中的数据。我已经检查过UNION
,但MSDN
说:-
以下是使用UNION组合两个查询的结果集的基本规则:-
* UNION中的每个SELECT语句必须具有相同的列数。
*这些列还必须具有相似的数据类型。
*每个SELECT语句中的列也必须具有相同的顺序。
Table 1 Table 2
Column1 Column2 Column4 Column5 Column3
------- ------- ------- ------- -------
A 1 E 10 a
B 2
C 3
D 4
**EXPECTED OUTPUT:-**
CONSOLIDATED_Table 3
Column1 Column2 Column3 Column4 Column5
------- ------- ------- ------- -------
A 1 E 10 a
B 2 E 10 a
C 3 E 10 a
D 4 E 10 a
谢谢。
答案 0 :(得分:0)
您可以添加其他列,例如:
select tid, t_name, null as s_name
from teachers t
union all
select sid, null, s_name
from students s;
答案 1 :(得分:0)
是的,您绝对可以使用INNER JOIN。这是一种从多个表中获取数据的简便方法。您可以使用子查询并以行格式获取数据
答案 2 :(得分:0)
我们使用联接来合并多个表的列,而给定所有具有联合的选择查询中的列类型和列的nber相同,则我们使用联合来联接多个表的行。 由于您要显示所有行,因此我们可以使用联合。 从老师那里选择tid作为id,选择t_name作为名字 全部合并 从学生中选择sid作为id,选择s_name作为名称;
答案 3 :(得分:0)
师生
select * from (
select 'teacher' as rowtype, tid as id , t_name as name
from teachers
union all
select 'student', sid, s_name
from students) t
order by name;
答案 4 :(得分:0)
这种方法产生笛卡尔乘积,但是由于表2中只有1行,因此它应该适用于您的特定用例。
select * from table_1, table_2;