MySql 連線查詢

2021-09-10 04:37:18 字數 2061 閱讀 5846

對於sql的join,在學習起來可能是比較亂的。我們知道,sql的join語法有很多inner的,有outer的,有left的,有時候,對於select出來的結果集是什麼樣子有點不是很清楚。coding horror上有一篇文章,通過文氏圖 venn diagrams 解釋了sql的join。我覺得清楚易懂,轉過來。

假設我們有兩張表。table a 是左邊的表。table b 是右邊的表。其各有四條記錄,其中有兩條記錄name是相同的,如下所示:讓我們看看不同join的不同

right outerjoin 是後面的表為基礎,與left outer join用法類似。這裡不介紹了。

5.unionunion all

union 操作符用於合併兩個或多個 select 語句的結果集。 

請注意,union 內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同。union 只選取記錄,而union all會列出所有記錄。

選取不同值

全部列出來

(3)注意:

由於 id 1 pirate   與 id 2 pirate 並不相同,不合併

還需要註冊的是我們還有乙個是「交差集」 cross join, 這種join沒有辦法用文式圖表示,因為其就是把錶a和表b的資料進行乙個n*m的組合,即笛卡爾積。表示式如下:select * from tablea cross join tableb

這個笛卡爾乘積會產生 4 x 4 = 16 條記錄,一般來說,我們很少用到這個語法。但是我們得小心,如果不是使用巢狀的select語句,一般系統都會產生笛卡爾乘積然再做過濾。這是對於效能來說是非常危險的,尤其是表很大的時候。

mysql連線查詢例項 MySQL連線查詢例項詳解

建立表suppliers create table suppliers s id int not null auto increment,s name char 50 not null,s city char 50 null,s zip char 10 null,s call char 50 not...

mysql連線查詢例項 MySQL連線查詢例項詳解

建立表suppliers create table suppliers s id int not null auto increment,s name char 50 not null,s city char 50 null,s zip char 10 null,s call char 50 not...

mysql連線查詢on MySQL連線查詢例項詳解

建立表suppliers create table suppliers s id int not null auto increment,s name char 50 not null,s city char 50 null,s zip char 10 null,s call char 50 not...