连表查询在MySQL中通常使用JOIN语句来实现,主要有几种类型:INNER JOIN(内连接)、LEFT JOIN(左连接)、RIGHT JOIN(右连接)和FULL OUTER JOIN(全外连接)。
以下是一个简单的内连接查询示例:
SELECT a.column1, b.column2
FROM tableA a
INNER JOIN tableB b ON a.common_field = b.common_field;
左连接查询返回左表的所有记录以及右表中匹配的记录,如果右表没有匹配,则结果为NULL:
SELECT a.column1, b.column2
FROM tableA a
LEFT JOIN tableB b ON a.common_field = b.common_field;
右连接查询返回右表的所有记录以及左表中匹配的记录,如果左表没有匹配,则结果为NULL:
SELECT a.column1, b.column2
FROM tableA a
RIGHT JOIN tableB b ON a.common_field = b.common_field;
全外连接查询返回左表和右表中的所有记录,对于没有匹配的记录,相应的位置填充NULL:
SELECT a.column1, b.column2
FROM tableA a
FULL OUTER JOIN tableB b ON a.common_field = b.common_field;
请注意,MySQL不直接支持FULL OUTER JOIN,但可以通过UNION来模拟全外连接的效果:
SELECT a.column1, b.column2
FROM tableA a
LEFT JOIN tableB b ON a.common_field = b.common_field
UNION
SELECT a.column1, b.column2
FROM tableA a
RIGHT JOIN tableB b ON a.common_field = b.common_field;