2010-11-08 61 views
1

我要运行依赖于彼此SQL Server的问题存储过程循环

select a from a (result has multiple rows) 
select b from b (result has multiple rows) 

的用于在查询的每个行多个查询我需要运行这个

select c from c where c.a=a amd c.b=b 

insert c into d 

有点像:

select a from a (result has multiple rows) 
select b from b (result has multiple rows 
    for a in a 
     for b in b 
      select c from c where c.a=a amd c.b=b 
      insert c,a,b into d 

这是否可以做为存储过程?

谢谢

+0

表一个具有在结果多行等为b – Birby 2010-11-08 16:15:28

+0

最终的结果应该是这样的 表d: C,A,B – Birby 2010-11-08 16:15:55

回答

4

存储过程?当然。射击,它甚至有可能在一个声明:

INSERT INTO d (c) 
    SELECT c FROM c WHERE c.a IN (SELECT a FROM a) AND c.b IN (SELECT b FROM b) 

你可以甚至可能做一个更好的加入一点点,而是写,我需要知道更多有关表如何关联。

3

我敢肯定,你可以写这个查询没有SQL使用任何循环。

1
INSERT 
INTO d 
SELECT c.* 
FROM a 
CROSS JOIN 
     b 
JOIN с 
ON  c.a = a.id 
     AND c.b = b.id