表格a
ID(自增长) |
名称 |
1 |
苹果 |
2 |
香蕉 |
3 |
西瓜 |
4 |
葡萄 |
5 |
甘蔗 |
表格b
ID(自增长) |
喜欢的水果名称 |
姓名 |
1 |
西瓜 |
张三 |
2 |
西瓜 |
李四 |
3 |
香蕉 |
张三 |
现在有 两个表分别是table a 和 table b,使用sql查询
如果使用SELECT a.名称,b. 姓名FROM a LEFT OUTER JOIN b ON a.name = b.Name
返回的结果如下图,但是不想要李四的数据。
表格d
名称 |
姓名 |
苹果 |
Null |
香蕉 |
张三 |
西瓜 |
张三 |
葡萄 |
Null |
甘蔗 |
Null |
西瓜 |
李四 |
如何才能写查询语句返回 结果是在所有的水果中,张三喜欢的水果上有他的姓名,不喜欢的为空
表格c
名称 |
姓名 |
苹果 |
Null |
香蕉 |
张三 |
西瓜 |
张三 |
葡萄 |
Null |
甘蔗 |
Null |
SELECT a.名称,b. 姓名FROM a LEFT OUTER JOIN b ON a.name = b.Name where b.Name = '张三'
加个where就行了?
SELET a.名称,case when b.姓名='张三' then b.姓名 else NULL end as 姓名 FROM a LEFT OUTER JOIN b ON a.name = b.Name
SELECT a.名称, a. 姓名
FROM a LEFT OUTER JOIN b ON a.name = b.Name
and b.姓名 = '张三'