1. 程式人生 > 其它 >sql-笛卡爾積

sql-笛卡爾積

測試頁面資料匯出時出現一個Bug,匯出的資料比頁面資料多幾條,且有些欄位值是亂碼。在開發那兒瞭解到時sql查詢的問題,之後仔細瞭解是笛卡爾積導致的問題

1、什麼是笛卡爾積?

笛卡爾積又稱為笛卡爾乘積,笛卡爾積是指在數學中,兩個集合X和Y的笛卡尓積(Cartesian product),又稱直積,表示為X × Y,第一個物件是X的成員而第二個物件是Y的所有可能有序對的其中一個成員。

2、笛卡爾積查詢語句

 在sql中,笛卡爾積又叫cross join , 是兩表連線的一種方式,接下來根據查詢結果來展示笛卡爾積

有兩個表student, subject表,表裡面的資料條數是不對應的

-會產生笛卡爾積的查詢,這時候sudent表的每條資料都對應了subject表裡的兩條資料,這就導致了資料重複,

-不會產生笛卡爾積的語句

 3、笛卡爾積產生的原因

  根據兩條查詢語句可以知道是缺少了關聯條件,解決辦法就是加上關聯條件。但是在一些特殊的開發需求中,笛卡爾積正好能實現我們的一些需求。