0

クエリを実行すると、特定の 1 つの列から 1 つの出力値を返すストアド プロシージャを Azure データベースで組み立てようとしています。

クエリ対象のテーブルには 3 つの列があり、クエリはマッハ 2 でなければならないため、複数の結果が得られる可能性はゼロです。次に、別のテーブルからデータを取得します。重要なのは、2 番目のクエリを開始するために、最初のクエリで値を出力する必要があるということです。

現在、私は2つの手順を持っていますが、1つにしたいと思っています。

クエリは今のところそのままです:

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

これを機能させるには、基本的に2つのオプションがあります。

私はあなたの 2 番目のクエリを見ていないので、以下にリストされている正しいテーブルをクエリしていることを確認してください。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

2 番目のオプションは、1 つのクエリで実行することです。

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 に答える