表一(person)
idname1劉備
2趙雲3華佗
4諸葛亮
表二(event)
idevent
1桃園結義
4七擒孟獲
5大意失荊州
6火燒連營
內連線是最常見的一種連線,只連線匹配的行。
例:
select
*from person p inner
join event e on p.id = e.id;
inner join產生的結果集中,是person表和event表根據條件產生的交集。
結果:id
name
event1劉備
桃園結義
4諸葛亮
七擒孟獲
left join返回左表的全部行和右表滿足on條件的行,如果左表的行在右表中沒有匹配,那麼這一行右表中對應資料用null代替。
注釋:在某些資料庫中,left join 稱為left outer join。
例:
select
*from person p left
join event e on p.id = e.id;
left join產生person表的完全集,而event表中匹配的則有值,沒有匹配的則以null值取代。
結果:id
name
event1劉備
桃園結義2趙雲
null3華佗
null
4諸葛亮
七擒孟獲
right join返回右表的全部行和左表滿足on條件的行,如果右表的行在左表中沒有匹配,那麼這一行左表中對應資料用null代替。
注釋:在某些資料庫中,right join 稱為right outer join。
例:
select
*from person p right
join event e on p.id = e.id;
right join產生event表的完全集,而person表中匹配的則有值,沒有匹配的則以null值取代。
結果:id
name
event1劉備
桃園結義
4諸葛亮
七擒孟獲
5null
大意失荊州
6null
火燒連營
full join 會從左表和右表那裡返回所有的行。如果其中乙個表的資料行在另乙個表中沒有匹配的行,那麼對面的資料用null代替。
例:
select
*from person p right
join event e on p.id = e.id;
full outer join產生person表和event表的並集。但是需要注意的是,對於沒有匹配的記錄,則會以null做為值。
結果:id
name
event1劉備
桃園結義2趙雲
null3華佗
null
4諸葛亮
七擒孟獲
5null
大意失荊州
6null
火燒連營
關於 SQL join 語句
幾種sql json查詢語句如下圖 其中 full outer join 連線無法在mysql中使用,可用 union 代替。注意 union all 命令和 union 命令幾乎是等效的,不過 union all 命令會列出所有的值。select select list from tablea a...
sql join語句總結
所有的join語句都跟連線順序相關 1 cross join 交叉聯接 生成笛卡爾積後,一定不能寫on或where條件。eg select from table 2 a cross join table 1 b 2 inner join 內聯接 生成笛卡爾積後根據on條件篩選 eg select f...
精妙SQL語句 sql join語句
文章出處 精妙sql語句 sql join語句 說明 複製表 只複製結構,源表名 a 新錶名 b sql select into b from a where 1 1 說明 拷貝表 拷貝資料,源表名 a 目標表名 b sql insert into b a,b,c select d,e,f from...