Skip to content

Instantly share code, notes, and snippets.

@popcornylu
Last active June 4, 2016 16:40
Show Gist options
  • Save popcornylu/97806da7666b70fd7cec91c1ccad2c3e to your computer and use it in GitHub Desktop.
Save popcornylu/97806da7666b70fd7cec91c1ccad2c3e to your computer and use it in GitHub Desktop.
SQL Join Quiz

Questions

來考一下SQL知識

Q1

如果兩個Table,size分別是m跟n,m>0 請問inner join的話最多會產生多少record?

  1. max(m, n)
  2. min(m, n)
  3. m + n
  4. m x n

Q2

呈上,如果是left join,請問最多會產生多少records?

  1. max(m, n)
  2. min(m, n)
  3. m + n
  4. m x n

Q3

呈上,如果是left join,請問至少會產生多少records?

  1. min(m, n)
  2. m
  3. n
  4. 0

注意事項:

  • Left join的Left都是size = m的
  • 此最多最少都是要對所有的m, n都要成立

Hint

http://sqlfiddle.com/#!7/15f3d/4

答案:

Q1

'4.' m x n 請參考Hint中的第一個 也就是兩兩比對,每個on的條件都符合

Q2

'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

Q3

'2.' m 這是left join的定義,左邊的table至少會有留下一筆 但是當有符合多個條件的話,則可能會有多筆。 所以最少最少會有一筆

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment