SQL學習之left join關鍵字

2021-10-01 10:28:44 字數 3537 閱讀 6028

菜鳥教程

sqlleft join關鍵字將左表 ( table1 )所有的行返回,即右表 ( table2 ) 中沒有匹配。如果右表中沒有匹配,則結果為 null

select column_name(s)

from table1 left

join table2 on table1.column_name = table2.column_name;

在某些資料庫中,left join稱為left outer join

select column_name(s)

from table1 left

outer

join table2 on table1.column_name = table2.column_name;

圖源於簡單教程很好理解

假設我們有兩張表 a 和 b

可以看到每個表的最後一條記錄是不匹配的,那麼left join的結果就是

,'python3 基礎教程'

,981

,'2017-04-18 13:52:03'),

(3,'ruby 基礎教程'

,199

,'2017-05-01 06:16:14'),

(4,'sql 基礎教程'

,300

,'2017-05-02 08:13:16');

insert

into lession_vews(uniq, lesson_id, date_at, views)

values

(20170511000001,1

,20170511

,320),

(20170511000002,2

,20170511,22

),(20170511000003,3

,20170511,49

),(20170512000001,1

,20170512

,220),

(20170512000002,2

,20170512,12

),(20170512000003,3

,20170512,63

),(20170513000001,1

,20170513

,441),

(20170513000002,2

,20170513,39

),(20170513000003,3

,20170513,87

);假設要檢視所有已經存在的課程的每天的訪問量,那麼可以使用下面的 sql 語句

select lesson.id,lesson.name,lesson_views.date_at, lesson_views.views from lesson left

join lesson_views on lesson.id=lesson_views.lesson_id order

by lesson.id desc

;

輸出結果如下

mysql> sselect lesson.id,lesson.name,lesson_views.date_at, lesson_views.views from lesson left

join lesson_views on lesson.id=lesson_views.lesson_id order

by lesson.id desc;+

----+---------------------+----------+-------+

| id | name | date_at | views |

+----+---------------------+----------+-------+|4

|sql 基礎教程 |

null

|null||

3| ruby 基礎教程 |

20170511|49

||3| ruby 基礎教程 |

20170512|63

||3| ruby 基礎教程 |

20170513|87

||1| python 基礎教程 |

20170511

|320||

1| python 基礎教程 |

20170512

|220||

1| python 基礎教程 |

20170513

|441|+

----+---------------------+----------+-------+

sql的left join 命令詳解

給個通俗的解釋吧.例表a aid adate 1 a1 2 a2 3 a3 表b bid bdate 1 b1 2 b2 4 b4 兩個表a,b相連線,要取出id相同的字段 select from a inner join b on a.aid b.bid這是僅取出匹配的資料.此時的取出的是 1 a...

sql的left join 命令詳解

給個通俗的解釋吧.例表a aid adate 1 a1 2 a2 3 a3 表b bid bdate 1 b1 2 b2 4 b4 兩個表a,b相連線,要取出id相同的字段 select from a inner join b on a.aid b.bid這是僅取出匹配的資料.此時的取出的是 1 a...

sql的left join 命令詳解

給個通俗的解釋吧.例表a aid adate 1 a1 2 a2 3 a3 表b bid bdate 1 b1 2 b2 4 b4 兩個表a,b相連線,要取出id相同的字段 select from a inner join b on a.aid b.bid這是僅取出匹配的資料.此時的取出的是 1 a...