私は2つのテーブルを持っています。
表1
- 約2700行のカウントがあります
- 列: ID、NO、NAME
表 2:
- 約300行のカウントがあります
- 列: ID、名前
どこ:
Table1.NO = Table2.ID
Table1(2700 行) を一覧表示したいのですが、Table1 に Table2 の行の一部が含まれていない場合は、「NA」と書きたいと思います。
どうすればSQLでそれを行うことができますか?
名前が存在する場合は、table2 から名前を出力したいと思います。その場合は次のようになります。
SELECT
a.id,
isnull(b.name, 'NA'),
a.name
FROM
table1 a
LEFT JOIN
table2 b
ON
a.no = b.id
あなたのためにそれを行います(table1からIDと名前も出力しました)。
編集:
申し訳ありませんが、投稿するまで MySQL タグが表示されませんでした。次のように、 coalesce
if の代わりに関数を使用する必要があります。isnull
SELECT
a.id,
coalesce(b.name, 'NA'),
a.name
FROM
table1 a
LEFT JOIN
table2 b
ON
a.no = b.id
以下のように試してみてLEFT JOIN
くださいISNULL
SELECT ISNULL(Table1.Name,'NA')
FROM Table1
LEFT JOIN Table2
ON Table1.NO = Table2.ID