來考一下SQL知識
如果兩個Table,size分別是m跟n,m>0 請問inner join的話最多會產生多少record?
- max(m, n)
- min(m, n)
- m + n
- m x n
-
呈上,如果是left join,請問最多會產生多少records?
- max(m, n)
- min(m, n)
- m + n
- m x n
-
呈上,如果是left join,請問至少會產生多少records?
- min(m, n)
- m
- n
- 0
-
注意事項:
- Left join的Left都是size = m的
- 此最多最少都是要對所有的m, n都要成立
http://sqlfiddle.com/#!7/15f3d/4
'4.' m x n 請參考Hint中的第一個 也就是兩兩比對,每個on的條件都符合
'5.' max(m x n, m) 基本上跟Inner join一樣是 就是兩兩比對,每個on的條件都符合 但是有一個例外情況是n=0的時候m x n = 0 left join還是應該有m筆 所以一般case走m x n n=0的時候走m
'2.' m 這是left join的定義,左邊的table至少會有留下一筆 但是當有符合多個條件的話,則可能會有多筆。 所以最少最少會有一筆