dcount_tbl,包含 dyw_author 及 dyw_count 兩個欄位,其中 dyw_author 與資料表 dyw_tbl 中的欄位 dyw_author 是相關的資料。
[root@kvm8 html]# mysql -s -uroot -p123qwe
mysql> use dyw;
mysql> create table dcount_tbl(
-> dyw_author varchar(40) not null,
-> dyw_count int
-> );
mysql>
dcount_tbl 插入 4 筆紀錄。
mysql> insert into dcount_tbl(dyw_author,dyw_count)
-> values
-> ('dywang', 4),
-> ('linda', 3),
-> ('peter', 2),
-> ('rita', 1)
-> ;
dcount_tbl 共有 4 筆紀錄。
mysql> select * from dcount_tbl; dyw_author dyw_count dywang 4 linda 3 peter 2 rita 1
dyw_tbl 共有 3 筆紀錄,其中 2 筆作者同時也出現在 資料表 dcount_tbl。
mysql> select * from dyw_tbl; dyw_id dyw_title dyw_author submission_date 1 c++ peter 2014-12-24 3 MySQL dywang 2014-12-12 5 Perl david 2014-12-27
dyw_tbl 及 dcount_tbl 的查詢,FROM 後的兩個資料表各給 a 及 b 來代表,WHERE 則限制兩個資料表同時出現的紀錄。查詢方式是搜尋欄位 dyw_author 同時出現在資料表 a 與 b 的紀錄。JOIN 也可使用逗號「,」代替。
mysql> select a.dyw_id,a.dyw_author,b.dyw_count
-> from dyw_tbl a JOIN dcount_tbl b
-> where a.dyw_author=b.dyw_author;
dyw_id dyw_author dyw_count
3 dywang 4
1 peter 2
dcount_tbl 中並沒有 dyw_author='david',所以這筆紀錄的 dyw_count 為 NULL。
mysql> select a.dyw_id,a.dyw_author,b.dyw_count
-> from dyw_tbl a left join dcount_tbl b
-> on a.dyw_author=b.dyw_author;
dyw_id dyw_author dyw_count
1 peter 2
3 dywang 4
5 david NULL
dyw_tbl 中並沒有 dyw_author='linda' 及 dyw_author='rita',所以這兩筆紀錄的 dyw_id 及 dyw_author 為 NULL。
mysql> select a.dyw_id,a.dyw_author,b.dyw_count
-> from dyw_tbl a right join dcount_tbl b
-> on a.dyw_author=b.dyw_author;
dyw_id dyw_author dyw_count
3 dywang 4
NULL NULL 3
1 peter 2
NULL NULL 1