在SQL Server中,如何连接具有不同列名和不同数据行的两个表?

时间:2013-05-25 05:04:00

标签: sql sql-server database

假设我有两张表T1& T2。我希望在SQL查询的帮助下将结果输出表作为O1

T1 {SName} 
T2 {VName} 

O1 {SName, VName}

6 个答案:

答案 0 :(得分:0)

有几种方法可以做到。一种简单的方法是:

select T1.SName,T2.VName from T1,T2;

答案 1 :(得分:0)

您似乎希望两个表的交叉连接包含T1和T2中的所有行组合。试试这个:

Select SName, VName From T1 Inner Join T2 On 1=1

您将获得的行数是T1和T2各行的乘积。

答案 2 :(得分:0)

我不知道我是否正确,你可以使用交叉加入。 如果你有两个表PlayersGameScores那么 SELECT* INTO O1 FROM GameScores CROSS JOIN Players将返回第一个表中的每一行与第二个表中的每一行组合在一起的所有记录。这也意味着CROSS JOIN返回连接表中行集的笛卡尔积。

答案 3 :(得分:0)

根据过滤条件从T1和T2中选择记录,然后在表O1中插入记录,使用下面的查询创建表O1并插入这些记录。

 INSERT INTO O1(SNAME, VNAME) 
    SELECT(T1.SNAME, T2.VNAME)
    From T1 Inner Join T2 On 1=1 //i.e WHERE T1.id=T2.T1_id

使用 WHERE 过滤记录

答案 4 :(得分:0)

如果您没有加入任何内容并想要一张包含所有可能组合的表格:

select SName, VName
into O1
from T1 cross join T2

如果您有要加入的列:

select SName, VName
into O1
from T1 inner join T2 on T1.col = T2.col

答案 5 :(得分:0)

获取上述结果

T1 {SName} 
T2 {VName} 
O1 {SName, VName}



 (SELECT * FROM T1,T2) as O1;
如果两个表都有单个值,那么

肯定会有用,如果没有,那么你可以选择 特定列,如T1.SName,T2.VName