MySQL關聯表查詢資料
阿新 • • 發佈:2018-12-12
t1表如下: t2表如下:
(inner) join只有左右表的資料匹配才會返回。
SELECT * FROM t1 INNER JOIN t2 ON t1.cid=t2.id 結果如下:
left join返回聯接左邊表的所有行,即使在右邊表中沒有匹配的行。
SELECT * FROM t1 LEFT JOIN t2 ON t1.cid=t2.id 結果如下:
right join返回聯接右邊表的所有行,即使在左邊表中沒有匹配的行。
SELECT * FROM t1 RIGHT JOIN t2 ON t1.cid=t2.id 結果如下:
full join返回聯接左右兩邊表的所有行,即使不匹配。
SELECT * FROM t1 FULL JOIN t2 ON t1.cid=t2.id 結果如下:
MySQL資料庫不支援full join,可以左聯+union+右聯實現
注意 select 。。。。。。on t1.cid=t2.id and t1.name='su'
select 。。。。。。on t1.cid=t2.id where t1.name='su'
這兩條語句在內部聯接和外部聯接的執行結果有所不同,內部聯接結果一樣,而外部聯接結果是不一樣的
SELECT * FROM t1 LEFT JOIN t2 on t1.cid=t2.id WHERE t1.`name`='su'
SELECT * FROM t1 LEFT JOIN t2 on t1.cid=t2.id AND t1.`name`='su'