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...