日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql联合查询语句详解_实例讲解MySQL联合查询

發布時間:2023/12/2 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql联合查询语句详解_实例讲解MySQL联合查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 內聯結:

Select A.Name, B.Hobby from A, B where A.id = B.id,這是隱式的內聯結,查詢的結果是:

Name

Hobby

Tim

Football

Jimmy

Basketball

Jimmy

Tennis

Tom

Soccer

它的作用和 Select A.Name from A INNER JOIN B ON A.id = B.id是一樣的。這里的INNER JOIN換成CROSS JOIN也是可以的。

2. 外左聯結

Select A.Name from A Left JOIN B ON A.id = B.id,典型的外左聯結,這樣查詢得到的結果將會是保留所有A表中聯結字段的記錄,若無與其相對應的B表中的字段記錄則留空,結果如下:

Name

Hobby

Tim

Football

Jimmy

Basketball,Tennis

John

Tom

Soccer

所以從上面結果看出,因為A表中的John記錄的ID沒有在B表中有對應ID,因此為空,但Name欄仍有John記錄。

3. 外右聯結

如果把上面查詢改成外右聯結:Select A.Name from A Right JOIN B ON A.id = B.id,則結果將會是:

Name

Hobby

Tim

Football

Jimmy

Basketball

Jimmy

Tennis

Tom

Soccer

這樣的結果都是我們可以從外左聯結的結果中猜到的了。

說到這里大家是否對聯結查詢了解多了?這個原本看來高深的概念一下子就理解了,恍然大悟了吧(呵呵,開玩笑了)?最后給大家講講MySQL聯結查詢中的某些參數的作用:

1.USING (column_list):其作用是為了方便書寫聯結的多對應關系,大部分情況下USING語句可以用ON語句來代替,如下面例子:

a LEFT JOIN b USING (c1,c2,c3),其作用相當于下面語句

a LEFT JOIN b ON a.c1=b.c1 AND a.c2=b.c2 AND a.c3=b.c3

只是用ON來代替會書寫比較麻煩而已。

2.NATURAL [LEFT] JOIN:這個句子的作用相當于INNER JOIN,或者是在USING子句中包含了聯結的表中所有字段的Left JOIN(左聯結)。

3.STRAIGHT_JOIN:由于默認情況下MySQL在進行表的聯結的時候會先讀入左表,當使用了這個參數后MySQL將會先讀入右表,這是個MySQL的內置優化參數,大家應該在特定情況下使用,譬如已經確認右表中的記錄數量少,在篩選后能大大提高查詢速度。

最后要說的就是,在MySQL5.0以后,運算順序得到了重視,所以對多表的聯結查詢可能會錯誤以子聯結查詢的方式進行。譬如你需要進行多表聯結,因此你輸入了下面的聯結查詢:

SELECT t1.id,t2.id,t3.id

FROM t1,t2

LEFT JOIN t3 ON (t3.id=t1.id)

WHERE t1.id=t2.id;

但是MySQL并不是這樣執行的,其后臺的真正執行方式是下面的語句:

SELECT t1.id,t2.id,t3.id

FROM t1,( t2 LEFT JOIN t3 ON (t3.id=t1.id) )

WHERE t1.id=t2.id;

這并不是我們想要的效果,所以我們需要這樣輸入:

SELECT t1.id,t2.id,t3.id

FROM (t1,t2)

LEFT JOIN t3 ON (t3.id=t1.id)

WHERE t1.id=t2.id;

總結

以上是生活随笔為你收集整理的mysql联合查询语句详解_实例讲解MySQL联合查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。