我想做这样的事情:
SELECT
Users.id,
Countries.name
FROM
Users, Countries
WHERE
Users.country_id = Countries.id
Run Code Online (Sandbox Code Playgroud)
问题是Users.country_id有时可以NULL,如果是整个行都没有返回.我希望它返回行但在该列中使用'null'或''.我试过这个:
SELECT
Users.id,
Countries.name
FROM
Users, Countries
WHERE
(Users.country_id = Countries.id OR Users.country_id IS NULL)
Run Code Online (Sandbox Code Playgroud)
但是,对于存在的每个*Countries.id*,它返回一次行.我该如何解决这个问题?
SELECT users.id, countries.name
FROM users
LEFT JOIN
countries
ON countries.id = users.country_id
Run Code Online (Sandbox Code Playgroud)
这是为什么首选ANSI连接语法(使用JOIN关键字)的一个很好的例子.