![](/img/trans.png)
[英]SQL SELECT from TABLE B based on column but grab all rows based on TABLE A ID
[英]SQL query to grab all id's from Table A for each id in Table B and insert into Table C?
我正在尝试提出一个SQL查询,我可以很容易地在代码中进行查询,但是对SQL来说确实是陌生的。
因为我想尽可能通用,所以我写出了psuedocode:
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
我将使用WHILE循环还是有更好的方法来完成此操作? 我正在使用SQL Server2008。谢谢。
您想从集合的角度思考。 您要查找的操作是cross join
。 这将产生两个表的所有组合(笛卡尔乘积):
select a.id, b.id
from A cross join B
要将其插入到表中,可以使用insert
:
insert into c(aid, bid)
select a.id, b.id
from A cross join B
也许这样:
INSERT INTO TableC (ColumnA, ColumnB, ...)
SELECT A.something, B.somethingElse
FROM TableA A
INNER JOIN TableB B ON A.someKey = B.anotherKey
WHERE something = aValue
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.