假设我有两张桌子T1
& T2
。我希望借助 SQL 查询将结果输出表作为 O1
T1 {SName}
T2 {VName}
O1 {SName, VName}
假设我有两张桌子T1
& T2
。我希望借助 SQL 查询将结果输出表作为 O1
T1 {SName}
T2 {VName}
O1 {SName, VName}
得到上述结果
T1 {SName}
T2 {VName}
O1 {SName, VName}
(SELECT * FROM T1,T2) as O1;
如果两个表都具有单个值,则肯定会起作用,否则您可以选择特定列,例如 T1.SName,T2.VName
我不知道我是否正确,您可以使用交叉连接。如果您有两个表Players
,GameScores
然后
SELECT* INTO O1 FROM GameScores CROSS JOIN Players
将返回第一个表中的每一行与第二个表中的每一行组合的所有记录。这也意味着 CROSS JOIN 返回联接表中行集的笛卡尔积。
根据过滤条件从 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过滤记录
有几种方法可以做到这一点。一种简单的方法是:
select T1.SName,T2.VName from T1,T2;
似乎您希望两个表的交叉连接包括 T1 和 T2 中的所有行组合。尝试这个:
Select SName, VName From T1 Inner Join T2 On 1=1
您将获得的行数是 T1 和 T2 中的行数的乘积。
如果您没有加入任何事情并想要一个包含所有可能组合的表格:
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