SQL Server CEで列が異なる2つのテーブルを結合するにはどうすればよいですか?
私は2つのテーブルを持っています:
テーブルスケジュール
+-----+----------+------+
+ ID + Name + Type +
+-----+----------+------+
+ 1 + A + 1 +
+ 2 + B + 1 +
+ 3 + C + 2 +
+-----+----------+------+
テーブルの説明
+-----+--------------------+
+ ID + Description +
+-----+--------------------+
+ 1 + A1 - XXXXX +
+-----+--------------------+
そして、私が取得したいのは、次のようなテーブルです。
+-----+----------+-----------------+
+ ID + Name + Description +
+-----+----------+-----------------+
+ 1 + A + A1 - XXXXX +
+ 2 + B + - +
+ 3 + C + - +
+-----+----------+-----------------+
IDがテーブルにない場合に、Description
列に入力する場所。-
Description
私はこのコードを試しました:
SELECT S.ID, D.Description
FROM Schedule AS S
INNER JOIN Description AS D
しかし、結果として:
+-----+----------+-----------------+
+ ID + Name + Description +
+-----+----------+-----------------+
+ 1 + A + A1 - XXXXX +
+ 2 + B + A1 - XXXXX +
+ 3 + C + A1 - XXXXX +
+-----+----------+-----------------+
そして、私がON句を与えようとしたとき:
SELECT S.ID, D.Description
FROM Schedule AS S
INNER JOIN Description AS D ON S.ID = D.ID
次のように、がテーブルID
上にある行を取得するだけです。Description
+-----+----------+-----------------+
+ ID + Name + Description +
+-----+----------+-----------------+
+ 1 + A + A1 - XXXXX +
+-----+----------+-----------------+
どうやってやるの?
[アップデート]
私はこのコードを試しましたが、機能します:
SELECT S.ID, S.Name, COALESCE (D.Description, '-') AS Description
FROM Schedule AS S
LEFT OUTER JOIN Description AS D ON S.ID = D.ID
しかし今、どうすればそれにWHERE句を追加できますか(plsは上の表を参照してくださいSCHEDULE
)?
私は試した:
SELECT S.ID, S.Name, COALESCE (D.Description, '-') AS Description
FROM Schedule AS S
LEFT OUTER JOIN Description AS D ON S.ID = D.ID AND S.Type = '1'
しかし、それでも行全体を取得します。