关于sql的问题 三张表一对多问题 5

有三张表:user表idname1aaa2bbb书名表idbook1张三1李四1王五2赵六2钱七电脑表idconputer1ibm2lenovo1dell三张表通过id关... 有三张表:
user 表
id name
1 aaa
2 bbb

书名 表
id book
1 张三
1 李四
1 王五
2 赵六
2 钱七

电脑 表
id conputer
1 ibm
2 lenovo
1 dell

三张表通过id关联
我想得到结果:
id name book computer
1 aaa 张三 ibm
李四 dell
王五
2 bbb 赵六 lenovo
钱七

空白处均为NULL
展开
 我来答
手机用户27922
2011-08-23 · TA获得超过239个赞
知道小有建树答主
回答量:645
采纳率:0%
帮助的人:448万
展开全部
很多问题可以用OVER PARTITION BY 而不是GROUP BY 解决。

不知道具体表名,列名,但相信可以用
SELECT MAX(...) OVER (PARTITION BY sID)
FROM ...
WHERE sID IN('c','d')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
明智还清澈的饼干9013
2011-08-22 · TA获得超过634个赞
知道小有建树答主
回答量:728
采纳率:0%
帮助的人:472万
展开全部
用left jion就能写了··
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lc...i@sina.com
2011-08-22 · 超过17用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:68.7万
展开全部
select a.id,a.name,b.book,c.computer from user a
left join 书名 b on a.id = b.id
left join 电脑 c on a.id = c.id

结果不可能是你要的那样,实际操作看看吧
如果你想得到那样的结果,我想你的数据库设计有问题,不知道你原先设想的是什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuchor
2011-08-22 · 超过34用户采纳过TA的回答
知道答主
回答量:103
采纳率:0%
帮助的人:107万
展开全部
你的表设计的有问题电脑那个表里怎么可能1有两个值? 你的结果也有问题 按你的表查出来 王五应该有computer的值 你的怎么可能为空?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式