sql-笛卡爾積
阿新 • • 發佈:2022-12-12
測試頁面資料匯出時出現一個Bug,匯出的資料比頁面資料多幾條,且有些欄位值是亂碼。在開發那兒瞭解到時sql查詢的問題,之後仔細瞭解是笛卡爾積導致的問題
1、什麼是笛卡爾積?
笛卡爾積又稱為笛卡爾乘積,笛卡爾積是指在數學中,兩個集合X和Y的笛卡尓積(Cartesian product),又稱直積,表示為X × Y,第一個物件是X的成員而第二個物件是Y的所有可能有序對的其中一個成員。
2、笛卡爾積查詢語句
在sql中,笛卡爾積又叫cross join , 是兩表連線的一種方式,接下來根據查詢結果來展示笛卡爾積
有兩個表student, subject表,表裡面的資料條數是不對應的
-會產生笛卡爾積的查詢,這時候sudent表的每條資料都對應了subject表裡的兩條資料,這就導致了資料重複,
-不會產生笛卡爾積的語句
3、笛卡爾積產生的原因
根據兩條查詢語句可以知道是缺少了關聯條件,解決辦法就是加上關聯條件。但是在一些特殊的開發需求中,笛卡爾積正好能實現我們的一些需求。