================START============================== 来了一个mail说是job跑得很慢,调查下原因 先来看下sql: SELECT h.order_no AS SO_no, h.order_type, h1.order_no AS po_no, l1.order_line_key AS PO_LKEY, l1.shipn
SELECT MA.NAME AS MakeName , M.ID AS ModelId , M.Name AS ModelName , M.Warranty AS ModelWarranty , S.ID,S.NAME,S.StyleWarranty FROM dbo.Model M INNER JOIN dbo.Make MA ON MA.Id = M.MakeId LEFT JOIN ( SELECT * FROM ( SELECT ROW_NUMBER() OVER ( PARTITIO
public function get_user_group_title($uid){ $pre = C('DB_PREFIX'); $res = M('AuthGroupAccess aga')->join("{$pre}auth_group ag on aga.group_id = ag.id") ->field('ag.title')->find(); return $res['title']; }
join on : 多表关联 内连接 :与其他表连接 from 表1 t join 表2 s on t.字段1 =s.字段2 join 表3 n on n.字段3=t.字段1 或 from 表1 a ,表2 b,表3c where a.字段=b.字段 自连接: 与自身连接 from 表1 t join 表1 s on t.字段1 =s.字段1 s.字段1=t.字段1 外连接:左/右连接 left join on 左连接 保证左边表的数据全部显示 right join on 右连接 保证右边表
聚合函数:(都会忽略null数据) 常用的有5种:将字段中所有的数据聚合在一条中 .sum(字段名) :求总和 .avg(字段名) :求平均值 .max(字段名) :求最大值 .min(字段名) :求最小值 .count(字段名.*) :统计行数 ----.按部门编号,查询平均薪水 ,并且平均薪水<1300的不显示,结果按降序排序 select empno,avg(sal) as avgsal from scott.emp group by empno having avg(sal)>= or
INNER JOIN ……ON的语法格式: FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表X ON Member.字段号=表X.字段号: 连接两个数据表语法格式: FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号 连接三个数据表语法格式: FROM (表1 INNER J