SQL的多表查詢(笛卡爾積原理)


感謝大佬:https://blog.csdn.net/yang5726685/article/details/53538438

MySQL的多表查詢(笛卡爾積原理)

  1. 先確定數據要用到哪些表。
  2. 將多個表先通過笛卡爾積變成一個表。
  3. 然后去除不符合邏輯的數據(根據兩個表的關系去掉)。
  4. 最后當做是一個虛擬表一樣來加上條件即可。

注意:列名最好使用表別名來區別。

笛卡爾積

在這里插入圖片描述
Demo:
在這里插入圖片描述
左,右連接,內,外連接
l 內連接:

要點:返回的是所有匹配的記錄。

  1.     select * from a,b where a.x = b.x                                                 ////內連接
    

l 外連接有左連接和右連接兩種。

要點:返回的是所有匹配的記錄 外加 每行主表外鍵值為null的一條記錄。輔表所有列為null值。

select * from a left join b on a.x=b.x order by a.x  //左外連接或稱左連接
select * from a right join b on a.x=b.x order by a.x  //右外連接或稱右連接

select子句順序

子句

說明

是否必須使用

select

要返回的列或表示式

form

從中檢索數據的表

僅在從表選擇數據時使用

where

行級過濾

group by

分組說明

僅在按組計算聚集時使用

having

組級過濾

order by

輸出排序順序

limit

要檢索的行數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM