0

私は2つのテーブルを持っています。

表1

  • 約2700行のカウントがあります
  • 列: ID、NO、NAME

表 2:

  • 約300行のカウントがあります
  • 列: ID、名前

どこ:

Table1.NO = Table2.ID

Table1(2700 行) を一覧表示したいのですが、Table1 に Table2 の行の一部が含まれていない場合は、「NA」と書きたいと思います。

どうすればSQLでそれを行うことができますか?

4

2 に答える 2

1

名前が存在する場合は、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 タグが表示されませんでした。次のように、 coalesceif の代わりに関数を使用する必要があります。isnull

SELECT 
    a.id,
    coalesce(b.name, 'NA'),
    a.name
FROM
    table1 a
LEFT JOIN
    table2 b
    ON
    a.no = b.id
于 2013-07-08T11:17:21.423 に答える
1

以下のように試してみてLEFT JOINくださいISNULL

SELECT ISNULL(Table1.Name,'NA')
FROM Table1
LEFT JOIN Table2
ON   Table1.NO = Table2.ID
于 2013-07-08T11:14:54.067 に答える