MySQL -- 连接查询
连接查询是数据库操作中的一个常用操作,它将两个或更多表的行结合在一起,基于两个表或更多表中的共同字段。在MySQL中,连接查询主要有交叉连接(CROSS JOIN)、内连接(INNER JOIN)、外连接(LEFT JOIN、RIGHT JOIN、FULL JOIN)等。
交叉连接(CROSS JOIN)
交叉连接返回的是两个表的笛卡尔积,即第一个表中的每一行与第二个表中的每一行组合。
SELECT *
FROM table1
CROSS JOIN table2;
内连接(INNER JOIN)
内连接返回的是两个表中有匹配的记录。
SELECT *
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
左连接(LEFT JOIN)
左连接返回的是左表的所有记录,即使右表中没有匹配的记录。
SELECT *
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
右连接(RIGHT JOIN)
右连接返回的是右表的所有记录,即使左表中没有匹配的记录。
SELECT *
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
全外连接(FULL JOIN)
全外连接返回的是两个表中的所有记录,如果一侧没有匹配,另一侧的结果将是NULL。
SELECT *
FROM table1
FULL JOIN table2
ON table1.column_name = table2.column_name;
注意:MySQL不支持FULL JOIN,但可以通过UNION来实现。
SELECT *
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name
UNION
SELECT *
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
以上代码示例仅供参考,具体使用时需要根据实际情况调整表名、字段名以及查询条件。
评论已关闭