天天看點

mysql 多表關聯操作

查詢操作

兩張表關聯

SELECT a.*,b.*
FROM table1 AS a
//左連接配接查詢
LEFT JOIN table2 AS b
ON a.id=b.id
WHERE a.id = 1
           

三張表聯合查詢

如果你的其中一張表一定有資料,而關聯的表有可能有資料也有可能沒資料的話,我們可以通過左連接配接/右連接配接的方式,把其他兩張表結果都查詢。無論關聯的表有沒有資料,主表都可以查詢到資料

如下所示,中間表一定有資料,是以采用左連接配接、右連接配接的方式查詢資料

SELECT a.*,b.*,c.*
FROM table1 AS a
//右連接配接查詢
RIGHT JOIN table2 AS b
ON a.id=b.id
//左連接配接查詢        
LEFT JOIN table3 AS c 
ON b.id = c.id
WHERE a.id = 1
           

删除操作

兩張表關聯删除:

DELETE a,b FROM table1 a
INNER JOIN  table2 b
ON a.id = b.aid
WHERE a.id = '1'
//或者也可以
DELETE a,b FROM table1 a,table2 b
WHERE a.id = b.aid
AND a.id = '1'
           

三張表删除

DELETE a,b,c FROM table1 a 
INNER JOIN  table2 b 
ON a.id = b.aid 
INNER JOIN table3 c 
ON a.id = c.aid 
WHERE a.id = '1'
           

假設a表裡資料,而b表或者c表裡沒資料,那麼就會删除失敗,即删除0條資料

如果你的主表一定有資料,而關聯的表有可能有資料也有可能沒資料的話,我們可以通過左連接配接删除的方式,把兩張表都删除。無論關聯的表有沒有資料,主表都可以删除成功

DELETE a.* ,b.* ,c.*
FROM table1 a
LEFT JOIN table2 b
ON a.id = b.aid
LEFT JOIN table3 c
ON a.id = c.aid
WHERE a.id = 1
           

版權聲明:本文為原文部落客原創文章,未經原文部落客允許不得轉載。 https://blog.csdn.net/moyanxuan_1993_2_24/article/details/51672904 點選打開原文連結