我一直在尝试在Azure数据库上组装存储过程,当它运行查询时,它会从一个特定列返回一个输出值。
多个结果的可能性为零,因为被查询的表有3列,查询必须为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
由于
答案 0 :(得分: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
)