關於join的笛卡爾積

2021-09-24 15:27:28 字數 432 閱讀 1041

就算時a和b表join+on仍然會有笛卡爾積的形式

因為如果a表和b表的id都有1對多的形式時,就是笛卡爾積

比如a中id=1的記錄有3條(id,維修時間),

b中id=1的記錄有2條(id,使用者上報時間)

,join,on之後就會有6條!

這樣之後再groupby(id)的時候就會有問題,可能我們僅需要的時使用者上報時間大與維修時間的 (因為這樣才鏈結)

的使用者上報次數大於2的車輛,這樣就會重覆記錄

總之要理解欄位的含義,再鏈結

那這種情況下怎麼保證join之後和a的記錄數量一致(b同理)

先join之後再group by a的id,維修時間,當然這個時候還要再取一次,取的時候不在groupby欄位的字段,按照業務理解取max或者sum之類的(相當於去重)

詳情可見didi的groupby寫的blog

避免笛卡爾積

在mysql中建立臨時表 create table temptable 2 instanceid numeric 30 celltype varchar 128 enodeb id numeric 30 eutrancell id numeric 30 engine myisam default c...

js笛卡爾積

可以用來模擬路徑,或者標籤的順序。笛卡兒積組合 function descartes list var result var pindex null var tempcount 0 var temp 根據引數列生成指標物件 for var index in list pindex index 單維度...

笛卡爾積 LintCode

我們採用二維陣列setlist表示集合陣列,其中setlist i 中的每個元素都為整數,且不相同。求集合setlist 0 setlist 1 setlist setlist.length 1 的笛卡爾積。一般地,集合a和集合b的笛卡爾積a b 注意事項 1 setlist.length 5 1 ...