首页 新闻 会员 周边

一个简单的sql 问题,但分数用完了,还请各位帮个忙

0
[已关闭问题]

表格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 = '张三' 得到的结果是 名称 姓名 香蕉 张三 西瓜 张三 如果使用 SELECT a.名称,b. 姓名FROM a LEFT OUTER JOIN b ON a.name = b.Name 得到的结果是 苹果 Null 香蕉 张三 西瓜 张三 葡萄 Null 甘蔗 Null 西瓜 李四 都不是我想要的结果 名称 姓名 苹果 Null 香蕉 张三 西瓜 张三 葡萄 Null 甘蔗 Null 西瓜 Null 或许我的问题描述的不清楚,我想要的结果是把水果的表循环一次,如果存在张三喜欢的水果,标记张三的名称,不是张三喜欢的水果统统都标记为Null
张晓飞2008的主页 张晓飞2008 | 初学一级 | 园豆:0
提问于:2010-05-26 21:58
< >
分享
其他回答(2)
0

SELECT  a.名称,b. 姓名FROM  a LEFT OUTER JOIN b ON a.name = b.Name where b.Name = '张三'

加个where就行了?

Gray Zhang | 园豆:17610 (专家六级) | 2010-05-27 00:43
谢谢!我的问题描述不准确,我又加了补充,不知道这次能描述准确不.
支持(0) 反对(0) 张晓飞2008 | 园豆:0 (初学一级) | 2010-05-27 12:56
0

SELET a.名称,case when b.姓名='张三' then b.姓名 else NULL end as 姓名 FROM  a LEFT OUTER JOIN b ON a.name = b.Name

larisa | 园豆:205 (菜鸟二级) | 2010-06-03 10:58
0

SELECT  a.名称, a. 姓名

FROM  a LEFT OUTER JOIN b ON a.name = b.Name

and b.姓名 = '张三'

gunsmoke | 园豆:3592 (老鸟四级) | 2012-06-12 05:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册