哎呀妈呀,今天这事儿可把我给折腾的!你们猜我干啥?捣鼓半天数据库里的那个“full join”,脑袋瓜子嗡嗡的,不过还总算是给弄明白!必须来给老铁们分享一下!
我是真不知道 full join 到底是个啥玩意儿,就知道它好像是把两个表给合一块儿。我就想着,我有俩表,一个“员工表”,一个“部门表”,这俩表里都有“部门ID”这一列,我是不是可以用 full join 把它们连一块儿,看看每个员工都属于哪个部门?
于是乎,我就开始上手试。我先是打开数据库软件,连上我的数据库,然后就开始写查询语句。这玩意儿,一开始写的时候还真有点懵,不知道该咋下手。我就去网上搜搜,看人家写的都是:
SELECT FROM 表1 FULL JOIN 表2 ON 表1.列名 = 表2.列名
我一看,这不挺简单的嘛就照葫芦画瓢,把我的表名和列名给填进去,然后一运行!还真出来结果!
但是,问题来,出来的结果里头,咋还有好多“NULL”值?这“NULL”是啥?我一查,,原来是“空”的意思。那为啥会有空值?我又仔细看看结果,发现,有的员工在“部门表”里找不到对应的部门,有的部门在“员工表”里也找不到对应的员工,这 full join 一连接,找不到对应数据的,就都给填上“NULL”。
我算是明白,这 full join ,就是把两个表所有的数据都给列出来,不管能不能对应上。能对应上的,就正常显示数据;对应不上的,就用“NULL”来占个位儿。这不就相当于把两个表的所有信息都给汇总到一块儿吗?
为验证我的理解对不对,我又试几个不同的表和查询条件,结果都跟我想的一样!看来,我是真把这 full join 给搞明白!
经过这么一折腾,我现在可是对 full join 解得透透的!以后再遇到需要把两个表所有数据都合并到一块儿的情况,我就知道该咋办!
这数据库里还有好多其他的连接方式,比如“left join”、“right join”、“inner join”啥的,我这还没来得及研究。等我啥时候有空,再把它们都给捣鼓捣鼓,到时候再来跟老铁们分享!
- 今天通过实践,算是把 full join 给搞懂。
- full join 就是把两个表的所有数据都合并在一起。
- 不管能不能对应上,都能在结果里看到。
- 对应不上的,就用 NULL 填充。
今天这波操作还是很有收获的,也希望我的分享能帮到你们!