MySQL多表聯合查詢

2022-07-30 02:36:08 字數 1667 閱讀 9043

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 =3
select e_link.link_id, e_link.l_name, e_link.url, e_link.pic_url, e_link.order_id as l_order_id, e_link.font_color, 

e_linkclass.name, e_linkclass.order_id as c_order_id

from `e_link`

join `e_linkclass` on e_link.c_id = e_linkclass.id

and e_link.c_id =1

limit 0 , 30

inner join 運算 組合兩個表中的記錄,只要在公共字段之中有相符的值。 語法

from table1 inner join table2 on table1.field1 compopr table2.field2
inner join 運算可分為以下幾個部分: 部分 說明 table1, table2 記錄被組合的表的名稱。 field1, field2 被聯接的字段的名稱。若它們不是由數字構成的,則這些字段必須為相同的資料型別幷包含同類資料,但它們無須具有相同的名稱。 compopr 任何的關係比較運運算元:"=," " select categoryname, productname from categories inner join products on categories.categoryid = products.categoryid;在上面的示例中,類識別符號是已被聯接的字段,但是它並不包含在查詢輸出中,因它並非被包含在 select 語句之中。在這個示例中,若要包含聯接字段,將欄位名包含在 select 語句中, categories.categoryid. 也可以使用下列語法,在乙個 join 語句中鏈結多個 on 子句:

select fields

from table1 inner join table2

on table1.field1 compopr table2.field1 and

on table1.field2 compopr table2.field2) or

on table1.field3 compopr table2.field3)];

也可以使用下列語法,巢狀 join 語句:

select fields

from table1 inner join

(table2 inner join [( ]table3

[inner join [( ]tablex [inner join ...)]

on table3.field3 compopr tablex.fieldx)]

on table2.field2 compopr table3.field3)

on table1.field1 compopr table2.field2;

在乙個 inner join 之中,可以巢狀 left join 或 right join,但是在 left join 或 right join 中不能巢狀 inner join。

mysql多表聯合查詢

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

mysql多表聯合查詢

mysql多表聯合查詢操作,3個表以上操作的sql語句 from語句是表選擇語句,需要選擇多個表的時候,用逗號 來分割所選的表。還可以用join語句來定義結合條件。表的別名 選擇的表可以取別名,在下面的例子中,from所選擇的表名後用空格來分割別名 例子1 將表foo取別名 t1,將表bar 取別名...

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