Mysql表并联_SQL多表查询 表联结
一、表的加法
union
將表按照行加起來,如無特殊要求會自動刪除重復(fù)數(shù)據(jù)
union all 保留全部的行
二、表的聯(lián)結(jié)
表之間通過列產(chǎn)生關(guān)系,并聯(lián)結(jié)在一起 jion聯(lián)結(jié)
1.交叉聯(lián)結(jié) 又稱笛卡爾積 cross jion
表中的每一行分別與另一個表中的每一行聯(lián)結(jié)起來
表1 m行 表2 n行 則交叉聯(lián)結(jié)表有m*n行
2.內(nèi)聯(lián)結(jié) inner jion
以查找出同時存在于兩張表中的數(shù)據(jù)為準
3. 左聯(lián)結(jié) left join
以左表為主表,以左表的數(shù)據(jù)為主
4.右聯(lián)結(jié) right join
以右表為主,全部取出右表對應(yīng)的數(shù)據(jù)
5.全聯(lián)結(jié) full join
返回左右兩個表中所有行
能匹配的合并,不能匹配的用null填充
MySQL不支持全聯(lián)結(jié)
若要求某張表的數(shù)據(jù),即以某張表的數(shù)據(jù)為準,采用左聯(lián)結(jié)/右聯(lián)結(jié);
要求以兩張表的公共部分為準時,采用內(nèi)聯(lián)結(jié)
三、聯(lián)結(jié)的業(yè)務(wù)問題
比如3張表聯(lián)結(jié) 多個join兩兩聯(lián)結(jié)
四、case表達式
條件判斷函數(shù)
case when then
...
else
end
每次運行只返回一個結(jié)果
注意:
else子句可省略,但是養(yǎng)成好習(xí)慣
case表達式可用于任意位置
end不能省略
需要條件判斷時,使用case 表達式
典型例子:自定義分組
group by用多個列來分組時,這幾個列的值全部相同才算一組
因此,只有一一對應(yīng)的列名才能多個列分組而沒有額外影響
在需要分組時,select 里的列名只能是group by子句里的列名
五、總結(jié)
總結(jié)
以上是生活随笔為你收集整理的Mysql表并联_SQL多表查询 表联结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql自动提交 dcl语句_MySQ
- 下一篇: mysql不复制数据_复制/复制数据库而