起始的两张表结构是这样的。
水果 | 颜色 |
---|---|
苹果 | Red |
橙子 | Orange |
火龙果 |
颜色 | 含义 |
---|---|
Red | 红色 |
Orange | 黄色 |
粉色 | |
紫色 |
要求的结果集:
水果 | 颜色 |
---|---|
苹果 | 红色 |
橙子 | 黄色 |
火龙果 |
乍眼看上去是否很简单呢?
select * from 水果表 a left join 颜色表 b on a.颜色=b.颜色
那你就错了。因为这条语句的结果集肯定如下表:
颜色 | 含义 |
---|---|
苹果 | 红色 |
橙子 | 黄色 |
火龙果 | 粉色 |
火龙果 | 紫色 |
所以正确的,应该是下这条SQL语句
select * from 水果表 a left join(select * from 颜色表 where 颜色!='') b on a.颜色=b.颜色
好久没写SQL,都忘得差不多了。今天记录一下,自己真笨哈