【问题标题】:MySQL: which table will be returned on 2nd Left joinMySQL:第二个左连接将返回哪个表
【发布时间】:2017-05-18 08:58:04
【问题描述】:
SELECT column_name(s)
FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name
LEFT JOIN table3 ON table2.column_name3 = table3.column_name3

根据网上的解释,它说

LEFT JOIN 关键字返回左表中的所有记录 (table1),以及来自右表 (table2) 的匹配记录。这 如果没有匹配,则从右侧结果为 NULL。

LEFT JOIN table3 ON table2.column_name3 = table3.column_name3 上会返回table1 还是table2

【问题讨论】:

    标签: mysql join


    【解决方案1】:

    它返回前一个连接与第三个连接。

    尝试考虑并排放置的表,并在连接条件为真时对齐行!这就是最终结果。

    让我们尝试一个简单的例子,让它更清楚。

    您有 3 个表:PeopleCitiesStates

    您想为数据库中的每个人显示他居住的城市和州。

    表结构是这样的:

    People: id_person, name, id_city

    Cities: id_city, city, id_state

    States: id_state, 状态

    最终的查询是这样的:

    select p.name, c.city, s.state 
    from people p
    inner join cities c on p.id_city = c.id_city
    inner join states s on c.id_state = s.id_state
    

    结果将是所有列并排,如下所示:

    name    city    state
    ----    ----    -----
    Simon   Berlin  Germany
    Mattia  Rome    Italy
    Francis Paris   France
    

    如果我们执行第一个join,我们会得到前2个表的信息,所以人名和城市名。然后通过第三次联接,您将获得前 2 个与第三个联接的表

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 2021-02-11
      • 2018-10-14
      • 2020-07-28
      相关资源
      最近更新 更多