我有2个表没有任何相互引用,我正在尝试通过从两个表中的字段中选择来创建第三个表(用于参考查找)。
TableA has an A_ID
TableB has a B_ID
我想创建表C,其在A_ID到B_ID之间具有1对1的引用 其中A_ID = FirstID和B_ID = SecondID,我无法加入2个表,因为没有任何共同点。
类似的东西:
Insert INTO [TableC]
(FirstID, SecondID)
SELECT
A_ID As FirstID,
(Select B_ID From TableB)
FROM TableA
基本上我们现在正在使用表C创建一个关系,以便我们可以使用它来使用它们的ID来引用这两个表。
答案 0 :(得分:8)
假设TableA和TableB没有任何共同之处,那么你想要的就是笛卡尔积,也就是说,对于B中每一行A次的每一行。
INSERT INTO TableC(FirstID,SecondID)
SELECT A_ID,B_ID
FROM TableA
CROSS JOIN TableB
也许您真正想要的是通过ROW_NUMBER()加入它们。
INSERT INTO TableC(FirstID,SecondID)
SELECT A_ID,B_ID
FROM (SELECT A_ID,ROW_NUMBER() OVER (ORDER BY whatever) as rownumA FROM TableA) a
FULL OUTER JOIN (SELECT B_ID,ROW_NUMBER() OVER (ORDER BY whatever) as rownumB FROM TableB) b ON a.rownumA=b.rownumB