🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## mysql中问题列表: > **1. UNION ALL 和 UNION 的区别** 区别:UNION ALL可以把相同记录的数据累计分组查出,UNION查询如果是相同的数据,只能查询出一条 > **2:Union用法** ``` SELECT date, MIN( date ), MAX( date ), COUNT( DISTINCT user_id ) AS uv, sum( CASE WHEN `system` = 1 THEN income / 1000000 ELSE income END ) AS ad_income, 't' FROM `fanqie_novel`.fq_ads_upload_record_months_202408 WHERE play_status = 1 AND date BETWEEN 20240801 AND 20241231 AND income > 0 AND book_id != 0 AND channel_id != 0 GROUP BY date UNION SELECT date, MIN( date ), MAX( date ), COUNT( DISTINCT user_id ) AS uv, sum( CASE WHEN `system` = 1 THEN income / 1000000 ELSE income END ) AS ad_income, 't' FROM `fanqie_novel`.fq_ads_upload_record_months_202409 WHERE play_status = 1 AND date BETWEEN 20240801 AND 20241231 AND income > 0 AND book_id != 0 AND channel_id != 0 GROUP BY date UNION SELECT date, MIN( date ), MAX( date ), COUNT( DISTINCT user_id ) AS uv, sum( CASE WHEN `system` = 1 THEN income / 1000000 ELSE income END ) AS ad_income, 't' FROM `fanqie_novel`.fq_ads_upload_record_months_202410 WHERE play_status = 1 AND date BETWEEN 20240801 AND 20241231 AND income > 0 AND book_id != 0 AND channel_id != 0 GROUP BY date UNION SELECT date, MIN( date ), MAX( date ), COUNT( DISTINCT user_id ) AS uv, sum( CASE WHEN `system` = 1 THEN income / 1000000 ELSE income END ) AS ad_income, 't' FROM `fanqie_novel`.fq_ads_upload_record_months_202411 WHERE play_status = 1 AND date BETWEEN 20240801 AND 20241231 AND income > 0 AND book_id != 0 AND channel_id != 0 GROUP BY date UNION SELECT date, MIN( date ), MAX( date ), COUNT( DISTINCT user_id ) AS uv, sum( CASE WHEN `system` = 1 THEN income / 1000000 ELSE income END ) AS ad_income, 't' FROM `fanqie_novel`.fq_ads_upload_record_months_202412 WHERE play_status = 1 AND date BETWEEN 20240801 AND 20241231 AND income > 0 AND book_id != 0 AND channel_id != 0 GROUP BY date ``` > 3:Union+Join用法 ``` SELECT * FROM ( SELECT date, MIN( date ), MAX( date ), COUNT( DISTINCT user_id, date ) AS num, sum( CASE WHEN `system` = 1 THEN income / 1000000 ELSE income END ) AS ad_income, 't' FROM `fanqie_novel`.fq_ads_upload_record_months_202408 WHERE play_status = 1 AND date BETWEEN 20240801 AND 20241231 AND income > 0 AND book_id != 0 AND channel_id != 0 GROUP BY date UNION SELECT date, MIN( date ), MAX( date ), COUNT( DISTINCT user_id, date ) AS num, sum( CASE WHEN `system` = 1 THEN income / 1000000 ELSE income END ) AS ad_income, 't' FROM `fanqie_novel`.fq_ads_upload_record_months_202409 WHERE play_status = 1 AND date BETWEEN 20240801 AND 20241231 AND income > 0 AND book_id != 0 AND channel_id != 0 GROUP BY date UNION SELECT date, MIN( date ), MAX( date ), COUNT( DISTINCT user_id, date ) AS num, sum( CASE WHEN `system` = 1 THEN income / 1000000 ELSE income END ) AS ad_income, 't' FROM `fanqie_novel`.fq_ads_upload_record_months_202410 WHERE play_status = 1 AND date BETWEEN 20240801 AND 20241231 AND income > 0 AND book_id != 0 AND channel_id != 0 GROUP BY date UNION SELECT date, MIN( date ), MAX( date ), COUNT( DISTINCT user_id, date ) AS num, sum( CASE WHEN `system` = 1 THEN income / 1000000 ELSE income END ) AS ad_income, 't' FROM `fanqie_novel`.fq_ads_upload_record_months_202411 WHERE play_status = 1 AND date BETWEEN 20240801 AND 20241231 AND income > 0 AND book_id != 0 AND channel_id != 0 GROUP BY date UNION SELECT date, MIN( date ), MAX( date ), COUNT( DISTINCT user_id, date ) AS num, sum( CASE WHEN `system` = 1 THEN income / 1000000 ELSE income END ) AS ad_income, 't' FROM `fanqie_novel`.fq_ads_upload_record_months_202412 WHERE play_status = 1 AND date BETWEEN 20240801 AND 20241231 AND income > 0 AND book_id != 0 AND channel_id != 0 GROUP BY date ) AS a LEFT JOIN ( SELECT * FROM ( SELECT date, MIN( date ), MAX( date ), COUNT( DISTINCT user_id, date ) AS num, sum( adv_income ) AS ad_income, 'r' AS t FROM `fanqie_novel`.`fq_link_user_behavior_records` WHERE `adv_income` > '0' AND date BETWEEN 20240801 AND 20241231 GROUP BY date ) AS b ) AS b ON a.date = b.date WHERE b.date IS NULL OR a.num != b.num OR a.ad_income != b.ad_income ORDER BY a.date ASC; ``` 3:mysql表的类型引起的问题,我这边有一个thrd_video_id,表的字段,设置为: ![](https://img.kancloud.cn/ed/1f/ed1f7163bde5667c870030d3eb1ab44b_1090x806.png) 然后执行sql: ``` SELECT * FROM videos WHERE third_video_id = 7482714718927326224 ``` ![](https://img.kancloud.cn/0a/c4/0ac46db9b73051b9cf3ee003ab8f0b18_1566x769.png)