最近面试时被问到“数据库中的左连接和右连接有什么不同”,琢磨了一下,对这个还确实不是很清楚哦~所以嘞,拿出来溜溜吧。
MySQL的连接主要分为内连接(inner join)、外连接(left join、right join)。
INNER JOIN
获取两个表中字段匹配关系的记录。
inner可以省略
即两个表中共有的部分
SQL语句:
SELECT *,*,*
FROM TABLE_A
INNER JOIN TABLE_B
ON TABLE_A.ID=TABLE_B.ID;
LEFT JOIN
获取左表所有记录,即使右表没有对应匹配的记录。
右表中没有对应匹配的记录则相应的数据为NULL
SQL语句:
SELECT *,*,*
FROM TABLE_A
LEFT JOIN TABLE_B
ON TABLE_A.ID=TABLE_B.ID;
RIGHT JOIN
与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
左表没有对应匹配的记录则相应的数据为NULL
SQL语句:
SELECT *,*,*
FROM TABLE_A
RIGHT JOIN TABLE_B
ON TABLE_A.ID=TABLE_B.ID;