Smi*_*ith 0 sql sql-server-2008
我正在尝试提出一个我可以在代码中轻松完成的SQL查询,但在SQL中对我来说真的很陌生.
由于我希望尽可能通用,我写出了伪代码:
foreach (record in TableA)
foreach (record in TableB)
var newRecord = new record(TableA.id, TableB.id)
TableC.Add(newRecord) // TableC.id is autoincremented
end foreach
end foreach
Run Code Online (Sandbox Code Playgroud)
我会使用WHILE循环还是有更好的方法来实现这一目标?我正在使用SQL Server 2008.谢谢.
你想从集合的角度思考.您正在寻找的操作是cross join.这产生了两个表(笛卡尔积)的每个组合:
select a.id, b.id
from A cross join B
Run Code Online (Sandbox Code Playgroud)
要将其插入表中,您可以使用insert:
insert into c(aid, bid)
select a.id, b.id
from A cross join B
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |