关于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 展开
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 展开
4个回答
展开全部
很多问题可以用OVER PARTITION BY 而不是GROUP BY 解决。
不知道具体表名,列名,但相信可以用
SELECT MAX(...) OVER (PARTITION BY sID)
FROM ...
WHERE sID IN('c','d')
不知道具体表名,列名,但相信可以用
SELECT MAX(...) OVER (PARTITION BY sID)
FROM ...
WHERE sID IN('c','d')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用left jion就能写了··
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
结果不可能是你要的那样,实际操作看看吧
如果你想得到那样的结果,我想你的数据库设计有问题,不知道你原先设想的是什么
left join 书名 b on a.id = b.id
left join 电脑 c on a.id = c.id
结果不可能是你要的那样,实际操作看看吧
如果你想得到那样的结果,我想你的数据库设计有问题,不知道你原先设想的是什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的表设计的有问题电脑那个表里怎么可能1有两个值? 你的结果也有问题 按你的表查出来 王五应该有computer的值 你的怎么可能为空?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询