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