同じ構造を持つ2つの同様のテーブルを比較しようとしています。だから私は、次のSQLを実行します。2つの同様のテーブルのデータを比較する
select * from mainTable g1 left join comparisonTable g2 on g2.SettingName=g1.SettingName
(テーブルのカラムは次のとおりです。ID、SettingName、SettingValue、タイムスタンプ)
そして、そのクエリはOKに動作しますが、私は唯一のショーの行に結果を制限したいと思いますここで、G2.SettingValueはNULLであるか、またはG1.SettingValueとは異なります。
だから私はに上記のSQLを修正する:しかし、これが唯一の第二の条件を満たした行を返す
select * from mainTable g1 left join comparisonTable g2 on g2.SettingName=g1.SettingName where g1.SettingValue <> g2.SettingValue OR g2.SettingValue Is NULL
。私はそれを実行していない場合
OR g2.SettingValue Is NULL
私は全く行を取得しません。しかし、多くの行はこのクエリを満たすようです。しかし、彼らは現れません。
このSQLは、問題を説明する必要があります
create table mainTable ([ID] [int] IDENTITY(1,1) NOT NULL, [settingname] [varchar](200) NULL, [settingvalue] [varchar](200))
create table comparisonTable ([ID] [int] IDENTITY(1,1) NOT NULL, [settingname] [varchar](200) NULL, [settingvalue] [varchar](200))
insert into maintable(SettingName, SettingValue) Values ('SettingName1','one'),('SettingName2','two'),('SettingName3','three')
insert into comparisonTable(SettingName, SettingValue) Values ('SettingName1','one'),('SettingName2','two'),('SettingName3','three')
次に実行します。
select * from mainTable g1 full outer join comparisonTable g2 on g2.SettingName=g1.settingName
を次に実行します。
insert into mainTable(SettingName, SettingValue) Values ('SettingName4','four')
試し結合条件にも追加の二つの条件を追加します。 – techspider
'しかし、多くの行がこのクエリを満たしているようです '、それらの行のいくつかを投稿するように気をつけますか? – Lamak