2014-09-23 84 views
3

說我有兩個表,表1和表2中。表1具有一個與表一對多關係2.SQL一對多與內部聯接

如果表1是我的基表(SELECT something FROM table1)與內部連接到表2,那麼當選擇表2中的任何字段時,將返回表2中的哪些值?

  • 返回第一個值?與Excel的vlookup函數一樣?
  • 加入的最後一個值?

E.G.

Table1 
    Account ID |  email  
     1  | [email protected] 
     2  | [email protected] 
     3  | [email protected] 

Table 2 
Subscription ID | Account ID |  Email  |  Created 
    100   |  1  | [email protected] | 2014-01-01 
    102   |  2  | [email protected] | 2014-02-02 
    103   |  1  | [email protected] | 2014-03-03 

所以,如果我跑了一個查詢,選擇基於訂閱的帳戶的創建日期,我可以只運行SELECT min(Created)拿到的第一個。

但是什麼是默認行爲?如果我的左表是將表1連接到帳號ID上的表2並選擇創建的字段,將返回? 2014-01-01或2014-03-03?

回答

6

您將返回兩個記錄。當您獲得JOIN表格時,您將獲得符合JOINWHERE條款以及任何GROUP BY/HAVING條款標準的所有記錄。如果你只想返回一個,你必須編寫代碼來指定你想要的。

+0

兩條記錄。非常感謝我甚至沒有考慮到這一點。 – 2014-09-23 18:29:12