0

我有这 3 个查询

SELECT a.name
FROM customer1 a, customer2 b
WHERE a.id =  b.id

SELECT c.code
FROM segment1 c, orders e, country d, customer1 a
WHERE a.code_1 = b.code_2
AND c.segment1 = e.orders
AND c.segment1_id = 6

SELECT add.box, addr.address1, addr.address2
from customer1 a, infos addr, actions ac
WHERE a.account_id = addr.account_id
AND ac.deletion_status = 'N'                                        

我想将这 3 个查询的结果合并到一个最终表格中。

如果我这样做:

SELECT a.name, c.code, addr.box, addr.address1, addr.address2
FROM customer1 a, customer2 b, segment1 c, orders e, country d, infos addr, actions ac
WHERE a.id = b.id
AND a.code_1 = b.code_2
AND c.segment1 = e.orders
AND c.segment1_id = 6
AND ac.deletion_status = 'N'                                        

这有效率吗?你推荐别的东西吗?

4

1 回答 1

2

如果你问我,写一个存储过程,获取参数,先带上你会用到的表,然后在存储过程中将这些结果join到其他表中,我认为这是最高效的方法。如果你要我可以给你举个例子。 CREATE PROCEDURE [dbo].[SP_MyProcedure] @CustomerId int AS BEGIN Declare @CustomerName nvarchar(50) Set @CustomerName=(SELECT Top 1 a.name FROM customer1 a, customer2 b WHERE a.id = b.id and a.id=@CustomerId)SELECT c.code FROM segment1 c, orders e, country d, customer1 a WHERE a.code_1 = b.code_2 AND c.segment1 = e.orders AND c.segment1_id = 6 and a.name=@CustomerName END

我写了这个例子供大家理解,表号和参数可能会增加。

于 2020-11-23T12:17:53.793 回答