在使用MySQL从数据库查询数据时,我们往往需要同时搜索两个或两个以上数据表中的数据才能得到想要的结果,这就需要进行多表查询。下面以两个表为例,说明多表查询主要的几个方式:
连接查询
若两表存在有相同的字段和相同的值时,使用连接查询。MySQL的连接查询主要有内连接(inner join/join)、左连接(left join)、右连接(right join),具体意义为:
- left join(左联接) :返回包括左表中的所有记录和右表中联结字段相等的记录 ;
- right join(右联接):返回包括右表中的所有记录和左表中联结字段相等的记录;
- inner join(内连接): 只返回两个表中联结字段相等的行。
通过这些连接方式我们可以实现以下几种关系的连接查询:
具体操作篇幅较长,详情见博文:《MySQL各种连接查询用法总结》
UNION
搜索无关联关系的值,使用 UNION 。MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。若不希望删除重复的数据,可使用UNION ALL。
语法:
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL |