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创建一个关系,以便我们可以使用它来使用它们来引用这两个表.
假设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)
| 归档时间: |
|
| 查看次数: |
2546 次 |
| 最近记录: |