浏览代码

设计人员报表标签素材查询sql优化

zhaoxian 4 年之前
父节点
当前提交
63c1ee2b2b

+ 87 - 50
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouReportDailyMaterialMapper.xml

@@ -443,7 +443,13 @@
         t1.user_id
         FROM ctop_material_tag_info t1
         LEFT JOIN ctop_tag_info t2 ON t2.id = t1.tag_id
-        LEFT JOIN ctop_kuaishou_video_get t4 ON t4.signature= t1.code
+        INNER JOIN
+        (
+        SELECT signature  FROM ctop_kuaishou_video_get
+        WHERE  stat_date >=  #{startTime}
+        AND stat_date <=  concat(#{endTime},' 23:59:59')
+        GROUP BY signature
+        ) t4 ON t4.signature= t1.`code`
         INNER JOIN(
         SELECT tt1.id,tt3.role_name,tt1.realname FROM sys_user tt1
         LEFT JOIN sys_user_role tt2 ON tt1.id = tt2.user_id
@@ -457,8 +463,6 @@
         </if>
         ) t3 ON t3.id = t1.user_id
         WHERE t2.parent_id in(60155,60156)
-        AND t4.stat_date &gt;= #{startTime}
-        AND t4.stat_date &lt;= concat(#{endTime},' 23:59:59')
         GROUP BY t1.user_id
         ) t
     </select>
@@ -481,7 +485,13 @@
         t3.role_name
         FROM ctop_material_tag_info t1
         LEFT JOIN ctop_tag_info  t2 ON t2.id = t1.tag_id
-        LEFT JOIN ctop_kuaishou_video_get t4 ON t4.signature= t1.code
+        INNER JOIN
+        (
+        SELECT signature  FROM ctop_kuaishou_video_get
+        WHERE  stat_date &gt;=  #{startTime}
+        AND stat_date &lt;=  concat(#{endTime},' 23:59:59')
+        GROUP BY signature
+        ) t4 ON t4.signature= t1.`code`
         INNER JOIN(
         SELECT tt1.id,tt3.role_name,tt1.realname FROM sys_user tt1
         LEFT JOIN sys_user_role tt2 ON tt1.id = tt2.user_id
@@ -495,8 +505,6 @@
         </if>
         ) t3 ON t3.id = t1.user_id
         WHERE t2.parent_id in(60155,60156)
-        AND t4.stat_date &gt;=  #{startTime}
-        AND t4.stat_date &lt;=  concat(#{endTime},' 23:59:59')
         GROUP BY t1.user_id
         ) k
         LEFT JOIN
@@ -505,7 +513,13 @@
         t1.user_id, SUM(t5.charge) 'zhenren_charge'
         FROM ctop_material_tag_info t1
         LEFT JOIN ctop_tag_info  t2 ON t2.id = t1.tag_id
-        LEFT JOIN ctop_kuaishou_video_get t4 ON t4.signature= t1.`code`
+        INNER JOIN
+        (
+        SELECT signature  FROM ctop_kuaishou_video_get
+        WHERE  stat_date &gt;=  #{startTime}
+        AND stat_date &lt;=  concat(#{endTime},' 23:59:59')
+        GROUP BY signature
+        ) t4 ON t4.signature= t1.`code`
         INNER JOIN(
         SELECT tt1.id,tt3.role_name,tt1.realname FROM sys_user tt1
         LEFT JOIN sys_user_role tt2 ON tt1.id = tt2.user_id
@@ -519,10 +533,7 @@
         </if>
         ) t3 ON t3.id = t1.user_id
         LEFT JOIN ctop_kuaishou_report_daily_material t5 ON  t1.`code` = t5.signature
-        WHERE 1=1
-        AND t4.stat_date &gt;=  #{startTime}
-        AND t4.stat_date &lt;=  concat(#{endTime},' 23:59:59')
-        AND t2.parent_id = 60155
+        WHERE t2.parent_id = 60155
         GROUP BY t1.user_id
         ) k1 ON k1.user_id =k.user_id
         LEFT JOIN
@@ -531,7 +542,13 @@
         t1.user_id,t4.signature
         FROM ctop_material_tag_info t1
         LEFT JOIN ctop_tag_info  t2 ON t2.id = t1.tag_id
-        LEFT JOIN ctop_kuaishou_video_get t4 ON t4.signature= t1.`code`
+        INNER JOIN
+        (
+        SELECT signature  FROM ctop_kuaishou_video_get
+        WHERE  stat_date &gt;=  #{startTime}
+        AND stat_date &lt;=  concat(#{endTime},' 23:59:59')
+        GROUP BY signature
+        ) t4 ON t4.signature= t1.`code`
         INNER JOIN(
         SELECT tt1.id,tt3.role_name,tt1.realname FROM sys_user tt1
         LEFT JOIN sys_user_role tt2 ON tt1.id = tt2.user_id
@@ -544,10 +561,7 @@
             AND tt3.role_code = #{roleCode}
         </if>
         ) t3 ON t3.id = t1.user_id
-        WHERE 1=1
-        AND t4.stat_date &gt;=  #{startTime}
-        AND t4.stat_date &lt;=  concat(#{endTime},' 23:59:59')
-        AND t2.parent_id = 60155
+        WHERE t2.parent_id = 60155
         GROUP BY t1.user_id,t1.`code`
         ) t
         GROUP BY user_id
@@ -558,7 +572,13 @@
         t1.user_id, SUM(t5.charge) 'zhizuo_charge'
         FROM ctop_material_tag_info t1
         LEFT JOIN ctop_tag_info  t2 ON t2.id = t1.tag_id
-        LEFT JOIN ctop_kuaishou_video_get t4 ON t4.signature= t1.`code`
+        INNER JOIN
+        (
+        SELECT signature  FROM ctop_kuaishou_video_get
+        WHERE  stat_date &gt;=  #{startTime}
+        AND stat_date &lt;=  concat(#{endTime},' 23:59:59')
+        GROUP BY signature
+        ) t4 ON t4.signature= t1.`code`
         INNER JOIN(
         SELECT tt1.id,tt3.role_name,tt1.realname FROM sys_user tt1
         LEFT JOIN sys_user_role tt2 ON tt1.id = tt2.user_id
@@ -572,10 +592,7 @@
         </if>
         ) t3 ON t3.id = t1.user_id
         LEFT JOIN ctop_kuaishou_report_daily_material t5 ON  t1.`code` = t5.signature
-        WHERE 1=1
-        AND t4.stat_date &gt;=  #{startTime}
-        AND t4.stat_date &lt;=  concat(#{endTime},' 23:59:59')
-        AND t2.parent_id = 60156
+        WHERE t2.parent_id = 60156
         GROUP BY t1.user_id
         )k3 ON k3.user_id =k.user_id
         LEFT JOIN
@@ -584,7 +601,13 @@
         t1.user_id,t4.signature
         FROM ctop_material_tag_info t1
         LEFT JOIN ctop_tag_info  t2 ON t2.id = t1.tag_id
-        LEFT JOIN ctop_kuaishou_video_get t4 ON t4.signature= t1.`code`
+        INNER JOIN
+        (
+        SELECT signature  FROM ctop_kuaishou_video_get
+        WHERE  stat_date &gt;=  #{startTime}
+        AND stat_date &lt;=  concat(#{endTime},' 23:59:59')
+        GROUP BY signature
+        ) t4 ON t4.signature= t1.`code`
         INNER JOIN(
         SELECT tt1.id,tt3.role_name,tt1.realname FROM sys_user tt1
         LEFT JOIN sys_user_role tt2 ON tt1.id = tt2.user_id
@@ -597,10 +620,7 @@
             AND tt3.role_code = #{roleCode}
         </if>
         ) t3 ON t3.id = t1.user_id
-        WHERE 1=1
-        AND t4.stat_date &gt;=  #{startTime}
-        AND t4.stat_date &lt;=  concat(#{endTime},' 23:59:59')
-        AND t2.parent_id = 60156
+        WHERE  t2.parent_id = 60156
         GROUP BY t1.user_id,t1.`code`
         ) t
         GROUP BY user_id
@@ -632,7 +652,13 @@
         t3.role_name
         FROM ctop_material_tag_info t1
         LEFT JOIN ctop_tag_info  t2 ON t2.id = t1.tag_id
-        LEFT JOIN ctop_kuaishou_video_get t4 ON t4.signature= t1.code
+        INNER JOIN
+        (
+        SELECT signature  FROM ctop_kuaishou_video_get
+        WHERE  stat_date &gt;=  #{startTime}
+        AND stat_date &lt;=  concat(#{endTime},' 23:59:59')
+        GROUP BY signature
+        ) t4 ON t4.signature= t1.`code`
         INNER JOIN(
         SELECT tt1.id,tt3.role_name,tt1.realname FROM sys_user tt1
         LEFT JOIN sys_user_role tt2 ON tt1.id = tt2.user_id
@@ -646,8 +672,6 @@
         </if>
         ) t3 ON t3.id = t1.user_id
         WHERE t2.parent_id in(60155,60156)
-        AND t4.stat_date &gt;=  #{startTime}
-        AND t4.stat_date &lt;=  concat(#{endTime},' 23:59:59')
         GROUP BY t1.user_id
         ) k
         LEFT JOIN
@@ -656,8 +680,15 @@
         t1.user_id, SUM(t5.charge) 'zhenren_charge'
         FROM ctop_material_tag_info t1
         LEFT JOIN ctop_tag_info  t2 ON t2.id = t1.tag_id
-        LEFT JOIN ctop_kuaishou_video_get t4 ON t4.signature= t1.`code`
-        INNER JOIN(
+        INNER JOIN
+        (
+        SELECT signature  FROM ctop_kuaishou_video_get
+        WHERE  stat_date &gt;=  #{startTime}
+        AND stat_date &lt;=  concat(#{endTime},' 23:59:59')
+        GROUP BY signature
+        ) t4 ON t4.signature= t1.`code`
+        INNER JOIN
+        (
         SELECT tt1.id,tt3.role_name,tt1.realname FROM sys_user tt1
         LEFT JOIN sys_user_role tt2 ON tt1.id = tt2.user_id
         LEFT JOIN sys_role tt3 ON tt2.role_id = tt3.id
@@ -670,10 +701,7 @@
         </if>
         ) t3 ON t3.id = t1.user_id
         LEFT JOIN ctop_kuaishou_report_daily_material t5 ON  t1.`code` = t5.signature
-        WHERE 1=1
-        AND t4.stat_date &gt;=  #{startTime}
-        AND t4.stat_date &lt;=  concat(#{endTime},' 23:59:59')
-        AND t2.parent_id = 60155
+        WHERE t2.parent_id = 60155
         GROUP BY t1.user_id
         )k1 ON k1.user_id =k.user_id
         LEFT JOIN
@@ -682,7 +710,13 @@
         t1.user_id,t4.signature
         FROM ctop_material_tag_info t1
         LEFT JOIN ctop_tag_info  t2 ON t2.id = t1.tag_id
-        LEFT JOIN ctop_kuaishou_video_get t4 ON t4.signature= t1.`code`
+        INNER JOIN
+        (
+        SELECT signature  FROM ctop_kuaishou_video_get
+        WHERE  stat_date &gt;=  #{startTime}
+        AND stat_date &lt;=  concat(#{endTime},' 23:59:59')
+        GROUP BY signature
+        ) t4 ON t4.signature= t1.`code`
         INNER JOIN(
         SELECT tt1.id,tt3.role_name,tt1.realname FROM sys_user tt1
         LEFT JOIN sys_user_role tt2 ON tt1.id = tt2.user_id
@@ -695,10 +729,7 @@
             AND tt3.role_code = #{roleCode}
         </if>
         ) t3 ON t3.id = t1.user_id
-        WHERE 1=1
-        AND t4.stat_date &gt;=  #{startTime}
-        AND t4.stat_date &lt;=  concat(#{endTime},' 23:59:59')
-        AND t2.parent_id = 60155
+        WHERE t2.parent_id = 60155
         GROUP BY t1.user_id,t1.`code`
         ) t
         GROUP BY user_id
@@ -709,7 +740,13 @@
         t1.user_id, SUM(t5.charge) 'zhizuo_charge'
         FROM ctop_material_tag_info t1
         LEFT JOIN ctop_tag_info  t2 ON t2.id = t1.tag_id
-        LEFT JOIN ctop_kuaishou_video_get t4 ON t4.signature= t1.`code`
+        INNER JOIN
+        (
+        SELECT signature  FROM ctop_kuaishou_video_get
+        WHERE  stat_date &gt;=  #{startTime}
+        AND stat_date &lt;=  concat(#{endTime},' 23:59:59')
+        GROUP BY signature
+        ) t4 ON t4.signature= t1.`code`
         INNER JOIN(
         SELECT tt1.id,tt3.role_name,tt1.realname FROM sys_user tt1
         LEFT JOIN sys_user_role tt2 ON tt1.id = tt2.user_id
@@ -723,10 +760,7 @@
         </if>
         ) t3 ON t3.id = t1.user_id
         LEFT JOIN ctop_kuaishou_report_daily_material t5 ON  t1.`code` = t5.signature
-        WHERE 1=1
-        AND t4.stat_date &gt;=  #{startTime}
-        AND t4.stat_date &lt;=  concat(#{endTime},' 23:59:59')
-        AND t2.parent_id = 60156
+        WHERE t2.parent_id = 60156
         GROUP BY t1.user_id
         )k3 ON k3.user_id =k.user_id
         LEFT JOIN
@@ -735,7 +769,13 @@
         t1.user_id,t4.signature
         FROM ctop_material_tag_info t1
         LEFT JOIN ctop_tag_info  t2 ON t2.id = t1.tag_id
-        LEFT JOIN ctop_kuaishou_video_get t4 ON t4.signature= t1.`code`
+        INNER JOIN
+        (
+        SELECT signature  FROM ctop_kuaishou_video_get
+        WHERE  stat_date &gt;=  #{startTime}
+        AND stat_date &lt;=  concat(#{endTime},' 23:59:59')
+        GROUP BY signature
+        ) t4 ON t4.signature= t1.`code`
         INNER JOIN(
         SELECT tt1.id,tt3.role_name,tt1.realname FROM sys_user tt1
         LEFT JOIN sys_user_role tt2 ON tt1.id = tt2.user_id
@@ -748,10 +788,7 @@
             AND tt3.role_code = #{roleCode}
         </if>
         ) t3 ON t3.id = t1.user_id
-        WHERE 1=1
-        AND t4.stat_date &gt;=  #{startTime}
-        AND t4.stat_date &lt;=  concat(#{endTime},' 23:59:59')
-        AND t2.parent_id = 60156
+        WHERE t2.parent_id = 60156
         GROUP BY t1.user_id,t1.`code`
         ) t
         GROUP BY user_id