菜鳥教程
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...