我有2张桌子。
表格1
- 已计数约 2700 行
- 列:ID、NO、NAME
表2:
- 已计数约 300 行
- 列:ID、NAME
在哪里:
Table1.NO = Table2.ID
我想列出 Table1(2700 行),但如果 Table1 不包含 Table2 的某些行,我想写“NA”
我怎么能用 SQL 做到这一点?
尝试如下所示LEFT JOIN
的功能ISNULL
SELECT ISNULL(Table1.Name,'NA')
FROM Table1
LEFT JOIN Table2
ON Table1.NO = Table2.ID
我假设您想从 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