0

我有2张桌子。

表格1

  • 已计数约 2700 行
  • 列:ID、NO、NAME

表2:

  • 已计数约 300 行
  • 列:ID、NAME

在哪里:

Table1.NO = Table2.ID

我想列出 Table1(2700 行),但如果 Table1 不包含 Table2 的某些行,我想写“NA”

我怎么能用 SQL 做到这一点?

4

2 回答 2

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 回答
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 和 name)。

编辑:

抱歉,在发布之前我没有看到 MySQL 标签。如果 ,您将需要使用该coalesce函数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 回答