SQL:来自2个非连接表的单选查询

ste*_*myu 2 sql t-sql sql-server

我有2个表,彼此之间没有任何引用,我正在尝试通过从两个表中的字段中选择来创建第三个表(用于参考查找).

TableA has an A_ID
TableB has a B_ID
Run Code Online (Sandbox Code Playgroud)

我想创建表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
Run Code Online (Sandbox Code Playgroud)

基本上我们现在正在使用表C创建一个关系,以便我们可以使用它来使用它们来引用这两个表.

Haf*_*hor 8

假设TableA和TableB没有任何共同点,那么你想要的是笛卡尔积,也就是说,对于B中每一行的每一行中的每一行.

INSERT INTO TableC(FirstID,SecondID)
SELECT A_ID,B_ID
FROM TableA
CROSS JOIN TableB
Run Code Online (Sandbox Code Playgroud)

也许你真正想要的是通过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
Run Code Online (Sandbox Code Playgroud)