MySQL:在第二次左连接时返回哪个表

时间:2017-05-18 08:58:04

标签: mysql join

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如何返回table1table2

1 个答案:

答案 0 :(得分:0)

它返回先前与第三个连接加入的连接。

尝试并排放置表格并对齐连接条件为真的行!这是最终的结果。

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

您有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

如果我们执行第一次加入,我们会同时获得前两个表的信息,以及该人的姓名和城市的名称。然后使用第三个连接,您将获得前面的2个连接表和第三个连接表