多表查询
多表查询,基本规则,通过两表有关联字段的进行条件匹配查询
内连接查询
方式一:
SELECT 查看字段名[,查看字段名] FROM 一表名,二表名 WHERE 一/二表.字段 = 一/二表.字段;
方式二:
SELECT 查看字段名[,查看字段名] FROM 一表名 INNER JOIN 二表名 on 一/二表.字段 = 一/二表.字段;
外链接查询
左连接查询
SELECT 查看字段名[,查看字段名] FROM 一表名 LEFT JOIN 二表名 on 一/二表.字段 = 一/二表.字段;
右连接查询
SELECT 查看字段名[,查看字段名] FROM 二表名 RIGHT JOIN 一表名 on 一/二表.字段 = 一/二表.字段;
注意!!!! 以上两种查询结果是一致的,LEFT/RIGHT 关键词对应的顺序跟参数顺序有关系
全连接(mysql不支持,但可以通过左右连接查询)
SELECT 查看字段名[,查看字段名] FROM 一表名 LEFT JOIN 二表名 on 一/二表.字段 = 一/二表.字段 UNION SELECT 查看字段名[,查看字段名] FROM 一表名 RIGHT JOIN 二表名 on 一/二表.字段 = 一/二表.字段;
注意: 这里左右连接关键字 左边的都是 一表名
复合查询
查询规则:先连接,再多表,后条件筛选(思路在多表操作的情况增加条件筛选.)
select * form 表1,表2 where 表1 inner/left/right join 表2 on 一/二表.字段 = 一/二表.字段 条件筛选
子查询
select * from 表名 where 条件 in (select * from 表名 where 条件)