Fra*_*oot 0 mysql join left-join
假设我想加入2个表,其中一个表是这样的.
| Category |
|-----------|
| id | name |
|----|------|
| 1 | Foo |
| 2 | Bar |
| 3 | Baz |
Run Code Online (Sandbox Code Playgroud)
另一个是这样的:
| Page |
|-----------|
| id | cat |
|----|------|
| 1 | 0 |
| 2 | 1 |
| 3 | 3 |
Run Code Online (Sandbox Code Playgroud)
如您所见,Page表中的cat 0 不存在于Category表中.不幸的是,我们的系统是这样0的Category,由于其他代码,我无法将带有id的类别添加到表中.
现在到了一百万美元的问题:是否有可能加盟category.id的page.cat,并设置一个if语句时,page.cat等于0以显示分类名称Default?
如果只有0是缺少的那么做左连接并用于COALESCE解码空值.
SELECT Page.*, COALESCE(name , 'Default')
FROM Page
LEFT JOIN Category
ON Page.cat = Category.id;
Run Code Online (Sandbox Code Playgroud)
要么
SELECT P.*, IFNULL(C.name , 'Default') as Name
FROM Page P
LEFT JOIN Category C ON P.cat= C.id
Run Code Online (Sandbox Code Playgroud)