mysql多表聯合查詢

2021-10-04 13:19:28 字數 1107 閱讀 5799

mysql多表聯合查詢操作,3個表以上操作的sql語句

from語句是表選擇語句,需要選擇多個表的時候,用逗號「,」來分割所選的表。還可以用join語句來定義結合條件。

表的別名

選擇的表可以取別名,在下面的例子中,from所選擇的表名後用空格來分割別名

–例子1:將表foo取別名 t1, 將表bar 取別名 t2

select * from foo t1 , bar t2 where t1.a = t2.a

–例子2:使用as取別名

select * from foo as t1 , bar as t2 where t1.a = t2.a

---------------------oracle , sql server , db2 , mysql

這樣就將表的別名取好了,這種情況下,再使用原來的表名,會出錯。在使用where條件時也必須用別名。一定要記住,取了別名的表和原來的表是不一樣的表。

from語句之結合條件

分為inner join,left join,right join。結合條件一般分為內部結合和外部結合,inner join是內部結合,後兩者為外部結合。left就是表示全部保留左邊表,right join全部保留左邊表。

條件式用on來指定,如果多個條件,則用and來連線

–例子:表foo和表bar以foo.a = bar.a 來實現內部結合

select * from foo inner join bar on foo.a = bar.a

三個以上的結合

三個以上表的結合是先結合兩個表,然後將結果當作乙個表再與另乙個表結合。

–例子:將foo , bar , more 三表結合

select * from ( foo inner join bar on foo.a = bar.a )

inner join more on foo.a = more.a

left join和 right join

使用left join 和 right join時,一定要注意位置。「foo left join bar 」就是將左邊的foo表的所有行保留,匹配不上的顯示null。反之,「foo right join bar」就是將右側的bar表全部保留,匹配不上的顯示null。

mysql多表聯合查詢

我在工作中天天研究zen cart的程式,那個叫人痛苦,最近比較痛苦的是經常碰見mysql多表聯合查詢,多的時候有12個表聯合查詢,zen cart的程式設計師不知道是懶還是技術好,乙個語句完成啦20幾個功能模組需要的資料,我修改就痛苦的很 我只會select from table where id...

mysql多表聯合查詢

建立表a插入資料 create table a id int 11 primary key,name varchar 6 not null age int 4 notnull insert into a values 1 111 20 insert into a values 2 222 20 in...

MySQL多表聯合查詢

mysql這方面的資料比較少,手邊的專案用到了多表的聯合查詢,乾脆備忘下來。select a.b.c.from a inner join b on a.cid b.cid inner join c on c.cid a.cid where a.cid 2 and a.id 3select e lin...