首页 > 其他分享 >OceanBase Join操作

OceanBase Join操作

时间:2023-06-19 10:05:44浏览次数:69  
标签:Join person OceanBase id v1 table 操作 NULL order


OceanBase 0.4版本中将全面支持SQL,下面给出OceanBase对Join的支持的例子。其中最值得关注的是,OceanBase支持full Join哦 :)

从下面的截图还可以看出来,用的是mysql客户端连接OceanBase。OceanBase完全兼容mysql通信协议。

mysql> select * from j1;
+---------+------+
| k1      | v1   |
+---------+------+
| jasimin | NULL |
| raywill |  101 |
+---------+------+
2 rows in set (0.01 sec)

mysql> select * from j2;
+---------+------+
| k2      | v1   |
+---------+------+
|     eng |  101 |
| officer |  102 |
+---------+------+
2 rows in set (0.01 sec)


mysql> select * from j1 join j2 on j1.v1 = j2.v1;
+---------+------+------+------+
| k1      | v1   | k2   | v1   |
+---------+------+------+------+
| raywill |  101 |  eng |  101 |
+---------+------+------+------+
1 row in set (0.08 sec)

mysql> select * from j1 left join j2 on j1.v1 = j2.v1;
+---------+------+------+------+
| k1      | v1   | k2   | v1   |
+---------+------+------+------+
| jasimin | NULL | NULL | NULL |
| raywill |  101 |  eng |  101 |
+---------+------+------+------+
2 rows in set (0.01 sec)

mysql> select * from j1 right join j2 on j1.v1 = j2.v1;    
+---------+------+---------+------+
| k1      | v1   | k2      | v1   |
+---------+------+---------+------+
| raywill |  101 |     eng |  101 |
|    NULL | NULL | officer |  102 |
+---------+------+---------+------+
2 rows in set (0.01 sec)

mysql> select * from j1 full join j2 on j1.v1 = j2.v1;      
+---------+------+---------+------+
| k1      | v1   | k2      | v1   |
+---------+------+---------+------+
| jasimin | NULL |    NULL | NULL |
| raywill |  101 |     eng |  101 |
|    NULL | NULL | officer |  102 |
+---------+------+---------+------+
3 rows in set (0.02 sec)


再举一个例子:

mysql> select * from person;
+------+---------+
| id   | name    |
+------+---------+
|    1 | raywill |
|    2 | kaka    |
|    3 | NULL    |
+------+---------+
3 rows in set (0.00 sec)

mysql> select * from order_table;
+------+------+---------------+
| oid  | id   | order_item_id |
+------+------+---------------+
|    1 |    1 |             1 |
|    2 |    1 |             2 |
|    3 |    2 |             1 |
|    4 | NULL |             1 |
+------+------+---------------+
4 rows in set (0.00 sec)

mysql> select person.name, order_table.order_item_id from person LEFT JOIN order_table ON person.id = order_table.id;
+---------+---------------+
| name    | order_item_id |
+---------+---------------+
| raywill |             1 |
| raywill |             2 |
| kaka    |             1 |
| NULL    |          NULL |
+---------+---------------+
4 rows in set (0.01 sec)

mysql> select person.name, order_table.order_item_id from person RIGHT JOIN order_table ON person.id = order_table.id;
+---------+---------------+
| name    | order_item_id |
+---------+---------------+
| NULL    |             1 |
| raywill |             1 |
| raywill |             2 |
| kaka    |             1 |
+---------+---------------+
4 rows in set (0.01 sec)

mysql> select person.name, order_table.order_item_id from person INNER JOIN order_table ON person.id = order_table.id;
mysql> select person.name, order_table.order_item_id from person JOIN order_table ON person.id = order_table.id;  // 等价inner join
+---------+---------------+
| name    | order_item_id |
+---------+---------------+
| raywill |             1 |
| raywill |             2 |
| kaka    |             1 |
+---------+---------------+
3 rows in set (0.00 sec)



mysql> select person.name, order_table.order_item_id from person FULL JOIN order_table ON person.id = order_table.id;       
+---------+---------------+
| name    | order_item_id |
+---------+---------------+
| NULL    |             1 |
| raywill |             1 |
| raywill |             2 |
| kaka    |             1 |
| NULL    |          NULL |
+---------+---------------+
5 rows in set (0.00 sec)




经过为期半年的努力,从看到select * from simple_table输出结果时候的欣喜,到多层嵌套查询轻松搞定时的淡定,真是体会了团队作战的威力!




标签:Join,person,OceanBase,id,v1,table,操作,NULL,order
From: https://blog.51cto.com/maray/6510880

相关文章

  • OceanBase里面的rowkey是什么概念,是由哪些要素构成的?
    Rowkey是OceanBase诞生之初就引入的概念,最终被确立是在OceanBase0.3。为了便于理解,不妨把OceanBase想象成一个Key-Value系统,Rowkey就是Key,Value就是返回的行数据。如果你对mysql数据库熟悉,那么不妨把Rowkey理解成primarykey,它就是那几个主键列的组合,列的顺序与primarykey中定义......
  • Oceanbase中Rowkey String的几种使用模式
    1.Rowkey深拷贝 直接进行Rowkey赋值的时候数据是浅拷贝的。为了深拷贝数据,往往提供一个MemBuffer或者StringBuffer,将源rowkey的数据memcpy到缓冲区(buffer),然后再将目的rowkey的指针指向buffer。2.Rowkey计算Hash  在老版本OB中,rowkey的hash值是通过murmurhash函数计算,输入是......
  • RBAC实战-配置用户操作集群权限(二)
    生成私钥cd/etc/kubernetes/pki(umask077;opensslgenrsa-outlucky.key2048)生成证书请求opensslreq-new-keylucky.key-outlucky.csr-subj"/CN=lucky"生成luckyca证书,获取APIServer信任opensslx509-req-inlucky.csr-CAca.crt-CAkeyca.key-CAcreatese......
  • 浅谈生活中常见的三大应用程序架构(PE、ELF、Mach-O)、五大操作系统(windows、linux、mac
    ·今天不聊复杂的技术,就是想做一下科普。我们生活中常见的操作系统,大致有5种分别是 电脑: Windows linux    macos手机 androidiosWindows手机操作系统没有发展起来,不同的操作系统间软件不能......
  • k8s 深入篇———— 一些容器操作的原理[三]
    前言简单介绍一下一些容器的操作原理。正文dockerexec是怎么做到进入容器里的呢。比如说:这里有一个容器,我们可以exec进去:dockerexec-itb265/bin/sh我们为什么能看到和容器内部一样的场景呢?首先我们知道了为什么容器进程只能看到规定的namespace了,那么如果我们......
  • python常用操作之代码操作大全
    目录列表操作大全(listoperations)字典操作大全(dictionaryoperations)表格操作大全(DataFrameoperations)MySQL操作大全(MySQLoperations)列表操作大全(listoperations)字典操作大全(dictionaryoperations)表格操作大全(DataFrameoperations)MySQL操作大全(MySQLoper......
  • springboot中操作redis
    1.maven引入相关依赖<dependencies> <!--spring-boot-starter-data-redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId&g......
  • Java:使用poi操作docx的word文档
    packagecom.aomen.java;importorg.apache.poi.openxml4j.exceptions.InvalidFormatException;importorg.apache.poi.util.Units;importorg.apache.poi.xwpf.usermodel.*;importorg.apache.xmlbeans.XmlCursor;importorg.openxmlformats.schemas.wordprocessingml.......
  • 发布:iNeuOS工业互联网操作系统 V5 Preview1 版本(自主可控)
    这次发布iNeuOS工业互联网操作系统V5版本,是一次重大框架重构,同时聚焦将来开发业务系统,V5版本将会长期发展。除了框架重构外,我们还在研究ChatGPT与iNeuOS怎么融合。      这半年来一直深耕包头,这个城市比较不错,但是推进项目的难度确实挺大的。与开发......
  • java操作redis之jedis
    我们之前对Redis的学习都是在命令行窗口,那么如何使用Java来对Redis进行操作呢?对于Java连接Redis的开发工具有很多,这里先介绍通过Jedis实现对Redis的各种操作。(前提是你的redis已经配置了远程访问)1.创建一个maven工程,并且添加以下依赖<dependencies><!--jedis--><......