MySQL5 連線查詢

2021-07-31 16:38:29 字數 1143 閱讀 5841

連線查詢可以實現多個表的查詢,一次取出多個表中的資料。

連線查詢可分為四種:內連線,外連線,交叉連線,自然連線。

如果連線查詢的不同表有同名字段,必須加表名或表名的別名來區分。

資料庫的預設查詢方式,inner可以省略不寫。

從左表取出記錄後,去匹配右表中的記錄,如果滿足條件則記錄保留,否則捨棄。

語法:左表 inner join 右表 on 左表.欄位=右表.欄位

on後面跟的是條件,最終只保留滿足條件的記錄。可以用where代替on,但是on效率更高。

以某張表為主,取表內所有記錄,然後將每一條記錄與另一張表進行連線,如果能匹配,則保留記錄,如果不能匹配,則其他表的字段置空且保留記錄(不管能不能匹配,主表對應的記錄都會保留)。

外連線分為左連線(left join)和右連線(right join)。

左連線和右連線可以互轉,只要將左表和右錶換位置,同時left join和right join替換即可。

左表是主表,最終記錄數至少不少於左表的記錄數(匹配到多條記錄時,最終記錄數大於左表記錄數)。

語法:左表 left join 右表 on 左表.欄位=右表.欄位

右表是主表,最終記錄數至少不少於右表的記錄數(匹配到多條記錄時,最終記錄數大於右表記錄數)。

語法:左表 right join 右表 on 左表.欄位=右表.欄位

沒啥卵用。

交叉連線即笛卡兒積。最終得到表中所有記錄的所有組合。

語法:左表 cross join 右表,等價於from 左表,右表

select * from 左表 cross join 右表;

實際專案很難保證欄位名完全一致,所以一般不用。

系統用欄位名作為匹配模式自動進行匹配。同名字段就是匹配條件。

自然連線分為自然內連線和自然外連線。

natural inner join

預設就是自然內連線,inner可以不寫。

自然左外連線:natural left join

自然右外連線:natural right join

left/right/inner join using(欄位名);

《學習》5連線查詢(高階查詢)

create table t tid int unsigned not null auto increment,tname varchar 30 primary key tid engine myisam auto increment 1 default charset utf8 insert in...

08 1連線查詢 外連線 MySQL

外連線 應用場景 用於查詢乙個表中有,另乙個表中沒有的記錄 特點 1 外連線的查詢結果為主表中的所有記錄 如果從表中有和主表匹配的,則顯示匹配的值 如果從表中沒有和主表匹配的,則顯示null 外連線查詢的結果 內鏈結結果 主表中有而從表中沒有的記錄 2 左外連線 left join 左邊的是主表 右...

MySQL8 連線查詢

連線查詢 連線是關係型資料庫模型的主要特點。連線查詢是關係型資料庫中最主要的查詢,主要包括內連線 外連線等通過聯結運算子可以實現多個表查詢。在關係型資料庫管理系統中,表建立時各種資料之間的關係不必確定,常把乙個實體的所有資訊存放在乙個表中,當查詢資料時通過連線操作查詢出存放在多個表中的不同實體資訊,...