SQL内部连接一对多

Dou*_*Fir 7 sql join

假设我有两个表,表1和表2.表1与表2有一对多的关系.

如果表1是我的基表(SELECT something FROM table1)与表2的内连接,那么当从表2中选择任何字段时,将返回表2中的哪些值?

  • 第一个值返回了吗?和excel的vlookup功能一样?
  • 加入的最后一个值?

例如

Table1
     Account ID |      email      
         1      |   abc@def.com
         2      |   cats@dogs.com
         3      |   ex@example.com

Table 2
Subscription ID | Account ID  |       Email       |      Created
    100         |     1       |    abc@def.com    |    2014-01-01
    102         |     2       |    cats@dogs.com  |    2014-02-02
    103         |     1       |    abc@def.com    |    2014-03-03
Run Code Online (Sandbox Code Playgroud)

因此,如果我运行查询以根据订阅选择帐户的创建日期,我可以运行SELECT min(Created)以获取第一个.

但是什么是默认行为?如果我的左表是表1加入表2的帐户ID,我选择创建的字段,将返回?2014-01-01或2014-03-03?

HLG*_*GEM 8

你会返回两个记录.当您JOIN表时,您将获得满足条件JOINWHERE条款以及任何GROUP BY/ HAVING子句的所有记录.如果只需要返回一个,则必须编写代码以指定所需的代码.

  • 两者都有记录。非常感谢我什至没有考虑到这一点。 (2认同)