1. 程式人生 > >MySQL關聯表查詢資料

MySQL關聯表查詢資料

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'