Delphi SQL 批量插入,该如何解决

Delphi SQL 批量插入
有三个表:
a(ID1,Name1);
b(ID2,Name2);
c(ID1,ID2);

a中ID1对应的数据有:
a1,a2,...,am
b中ID2对应的数据有:
b1,b2,...bn

在Delphi中如何写高效点的语句,使得能够将下面的数据插入到c表中:
a1,b1
a1,b2
...
a1,bn
...
a2,b1
a2,b2
...
a2,bn
...
...
am,b1
am,b2
...
am,bn

我用的是ADOQuery连接数据库的。

------解决方案--------------------
先用查询生成a、b关联的表(符合你格式要求的),然后用插入语句,将查询结果插入到c表中。
------解决方案--------------------


create table #a (id1 char(10), name1 char(10))
create table #b (id2 char(10), name2 char(10))
create table #c (id1 char(10), id2 char(10))


insert into #a values('a1', 'a1')
insert into #a values('a2', 'a2')
insert into #a values('a3', 'a3')

insert into #b values('b1', 'b1')
insert into #b values('b2', 'b2')
insert into #b values('b3', 'b3')

insert into #c
select #a.id1, #b.id2 
from #a CROSS JOIN #b
select * from #C 
order by id1, id2