0

我一直在尝试在我的 Azure 数据库上组装一个存储过程,当它运行查询时,它会从一个特定的列返回一个输出值。

多个结果的可能性为零,因为被查询的表有 3 列,并且查询必须马赫数 2。然后它从另一个表中获取数据。关键是我需要第一个查询来输出值才能开始第二个查询。

目前我有2个程序,我想要一个。

查询目前是这样的:

select 
    customers_catalogs_define.catalog_id 
from 
    customers_catalogs 
left outer join    
    customers_catalogs_define on customers_catalogs.catalog_id = customers_catalogs_define.catalog_id 
where 
    customers_catalogs.catalog_unique_identifier = @catalog_unique 
    AND customers_catalogs_define.customer_id = @customer_id 

输出当然是catalog_id. 从那我把它带到另一个查询中,我有这个查询来进行实际的列表检索。至少我想添加一条简单说明的行@catalog_id = output

谢谢

4

1 回答 1

0

您基本上有两种选择来完成这项工作:

由于我还没有看到您的第二个查询,因此请确保它查询下面列出的正确表CUSTOMERS_CATALOGS_DEFINE

按照您的建议使用变量:

DECLARE @CATALOG_ID INT

SET @CATALOG_ID = (
    SELECT CUSTOMERS_CATALOGS_DEFINE.CATALOG_ID 
    FROM CUSTOMERS_CATALOGS 
    LEFT OUTER JOIN CUSTOMERS_CATALOGS_DEFINE 
    ON CUSTOMERS_CATALOGS.CATALOG_ID = CUSTOMERS_CATALOGS_DEFINE.CATALOG_ID 
    WHERE CUSTOMERS_CATALOGS.CATALOG_UNIQUE_IDENTIFIER = @CATALOG_UNIQUE 
    AND CUSTOMERS_CATALOGS_DEFINE.CUSTOMER_ID = @CUSTOMER_ID )

SELECT * 
FROM CUSTOMERS_CATALOGS_DEFINE
WHERE CATALOG_ID = @CATALOG_ID

第二种选择是在一个查询中执行此操作:

SELECT * 
FROM CUSTOMERS_CATALOGS_DEFINE
WHERE CATALOG_ID IN (
    SELECT CUSTOMERS_CATALOGS_DEFINE.CATALOG_ID 
    FROM CUSTOMERS_CATALOGS 
    LEFT OUTER JOIN CUSTOMERS_CATALOGS_DEFINE 
    ON CUSTOMERS_CATALOGS.CATALOG_ID = CUSTOMERS_CATALOGS_DEFINE.CATALOG_ID 
    WHERE CUSTOMERS_CATALOGS.CATALOG_UNIQUE_IDENTIFIER = @CATALOG_UNIQUE 
    AND CUSTOMERS_CATALOGS_DEFINE.CUSTOMER_ID = @CUSTOMER_ID
)
于 2012-11-14T17:43:55.753 回答