表连接

Salted-fish 2020-03-09 05:03:20
垂直分表可以左右内交叉之类的连接.但是水平分表用sql怎么连接?
大脑短路求指点.
...全文
305 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Salted-fish 2020-03-13
  • 打赏
  • 举报
回复
引用 4 楼 Salted-fish 的回复:
[quote=引用 2 楼 卖水果的net 的回复:] 水平分表要用 union all 关键字。 -- 大概如下,注意:尽量写出你的列名,不用 * select * from p1 union all select * from p2
还有问下, select A.* , B.value from A left join B on A.id = B.id ,这样B表没有数据的时候右边是空的. 但是 select A.* , B.value from A left join B on A.id = B.id where B.name = 'ss'; 如果原先右边是空的话,直接整行数据都没了.怎么在右表没有这个数据或者不满足b.name= 'ss'右边显示空白,有数据且满足b.name= 'ss'显示正确的b.value[/quote] ok,解决了. select A.* , B.value from A left join (select * from B1 where B1.name = 'ss' )B on A.id = B.id ;
Salted-fish 2020-03-13
  • 打赏
  • 举报
回复
引用 2 楼 卖水果的net 的回复:
水平分表要用 union all 关键字。 -- 大概如下,注意:尽量写出你的列名,不用 * select * from p1 union all select * from p2
还有问下, select A.* , B.value from A left join B on A.id = B.id ,这样B表没有数据的时候右边是空的. 但是 select A.* , B.value from A left join B on A.id = B.id where B.name = 'ss'; 如果原先右边是空的话,直接整行数据都没了.怎么在右表没有这个数据或者不满足b.name= 'ss'右边显示空白,有数据且满足b.name= 'ss'显示正确的b.value
Salted-fish 2020-03-13
  • 打赏
  • 举报
回复
引用 2 楼 卖水果的net 的回复:
水平分表要用 union all 关键字。 -- 大概如下,注意:尽量写出你的列名,不用 * select * from p1 union all select * from p2
这个才是正解.谢谢.
卖水果的net 2020-03-13
  • 打赏
  • 举报
回复
水平分表要用 union all 关键字。 -- 大概如下,注意:尽量写出你的列名,不用 * select * from p1 union all select * from p2
lhdz_bj 2020-03-09
  • 打赏
  • 举报
回复
引用 楼主 Salted-fish 的回复:
垂直分表可以左右内交叉之类的连接.但是水平分表用sql怎么连接?
大脑短路求指点.


垂直分表是将原来的一张表分为多张表,所以,有时需要连接;

水平分表切分的是数据,例如:分布式数据库的数据分片,或数据库的分区,其将原来一张表里的数据分到多个节点或分区里存储,这些不同节点上的分片或分区的表结构是完全一样的,查询时由分布式数据库的中间件或数据库系统自动完成数据的映射和结果的合并,SQL操作时不需要连接。

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧