数据库
1.复杂查询
-
多对一,将两张表通过join进行关联,其中的n表是通过查询语句查出,然后
selct from emp e join () n on n.depno = e.depno
-
使用聚合函数:avg、sum、min、max,count,有 “表单位” 和 “组单位” 。如果是 表单位 的话 ,不管使用哪一个聚合函数,都只查询一条数据。如果是 组单位 ,则会根据组的多少就查询多少条数据。
-
先查询,后分组
先把表中的所有职位是经理的数据行查询出来,得到一张关于所有部门经理相关人员信息的表,再以 “部门” 为单位 对此表进行分组。
select deptno ,count(1) from emp where job = 'MANAGER' GROUP BY deptno
SELECT i.*,n1,n2,n3
FROM `app_info` i
JOIN
(
SELECT i.`id` iid,`categoryName` n1
FROM `app_category` c
JOIN `app_info` i
ON c.`id` = i.`categoryLevel1`
) c1
ON c1.iid = i.id
JOIN
(
SELECT i.`id` iid,`categoryName` n2
FROM `app_category` c
JOIN `app_info` i
ON c.`id` = i.`categoryLevel2`
) c2
ON c2.iid = i.id
JOIN
(
SELECT i.`id` iid,`categoryName` n3
FROM `app_category` c
JOIN `app_info` i
ON c.`id` = i.`categoryLevel3`
) c3
ON c3.iid = i.id
-
join … on ,可以将需要的数据查询出来,然后自己将其声明成一张新表,可以使用join 新表 on 获取行数据条件,然后就可以查询出一张自己所需要数据的一张表了!!!虽然查询所需数据不在同一张表,当时表和表之间有通过主外键进行关联,只要有关联,我们就可以查出我们所需要主键所在表的数据,然后和外键所在的表组成一张新表。这样就可以获得我们在项目中所想要的数据了!
-
desc : 降序 asc :升序