【问题标题】:SQL one to many with inner join带内连接的 SQL 一对多
【发布时间】:2014-09-23 18:10:53
【问题描述】:

假设我有两个表,表 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

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

但是默认行为是什么?如果我的左表是在帐户 ID 上连接到表 2 的表 1 并且我选择创建的字段,将返回哪个? 2014-01-01 还是 2014-03-03?

【问题讨论】:

    标签: sql join


    【解决方案1】:

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

    【讨论】:

    • 两条记录。非常感谢,我什至没有考虑到这一点。
    猜你喜欢
    • 1970-01-01
    • 2014-02-10
    • 2014-11-19
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    相关资源
    最近更新 更多