私がデータを確認したいが、別のテーブルに存在するEXISTS ..SQLクエリIF
私のテーブル構造
CREATE TABLE [dbo].[IndicatorData]
(
[id] [bigint] IDENTITY(1,1) NOT NULL,
[value] [float] NOT NULL,
[indicatorId] [int] NOT NULL,
[source] [nvarchar](500) NOT NULL,
[uploaded] [bit] NOT NULL,
[createdBy] [nvarchar](500) NULL,
[createdOn] [datetime] NULL,
[lastModifiedBy] [nvarchar](500) NULL,
[lastModifiedOn] [datetime] NULL
)
表2
CREATE TABLE [dbo].[DataFields]
(
[dataId] [bigint] NOT NULL,
[fieldId] [int] NOT NULL
)
IndicatorData.id
はDataFields.dataid
(IndicatorData.id
缶と関係を持っていますデータフィールドの複数の組み合わせを持つ)
表IndicatorDataサンプルデータ:
表DataFieldsサンプルデータ:私が試し
クエリ:
注:私は意志、データIDを通過しませんフィールドIDを渡す&インジケータID
シナリオ#1
SELECT *
FROM IndicatorData a
INNER JOIN DataFields b ON a.id = b.dataid
WHERE a.indicatorid = 72
AND b.fieldid IN (59, 207)
私は、フィールドIDを渡すと、私はデータIDと値の組み合わせを取得する必要があります。
出力は次のように返す必要があります:
親切に私はこの
あなたのクエリは、私には正常に見える - 動作していないでしょうか? – cco
あなたはScaneiro#1を見て、出力を比較することができます。違いを見つけることができます –
あなたは何をしたいのかはっきりしません。同じ値のIDと複数のレコードの出力だけが必要なのですか?つまり、シナリオ1の出力では、id = 69137のレコードは、出力に必要なものではありませんか? – jyao