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。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
