函数
count和case
SELECT
COUNT( 1 ) AS 总订单数,
COUNT(CASE t_order.order_status WHEN 'completed' THEN 1 END ) as 完成工单数
FROM
t_order
GROUP BY
team_id
ORDER BY 完成工单数 desc;
GROUP_CONCAT
将多个查询条件拼接成一条数据。(可以理解为行转列吧)。 可以自己指定拼接的字段,默认是逗号 ,
SELECT
(SELECT GROUP_CONCAT(t_attr.name) from t_attr where t_attr.order_id = t_order.id ) AS attrs,
FROM
t_order
技巧
根据已有表数据去新增数据
INSERT INTO t_user_join ( id, team_id, user_id, delete_flag, create_user, update_user )
SELECT
(SELECT REPLACE(CONVERT(UUID() USING utf8mb4), '-', '')) as id ,
t_user.team_id,
t_user.id,
t_user.delete_flag,
t_user.create_user,
t_user.update_user
FROM
t_user;
#备注 SELECT REPLACE(CONVERT(UUID() USING utf8mb4), '-', '') 不进行convert的操作,每行uuid都相同,实验过,这样能生成不一样的。
根据已有表数据去修改数据
UPDATE t_user
SET t_user.organ_id =(SELECT organ_id from ci_team WHERE ci_team.id = t_user.team_id );