## 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,表的字段,設置為:

然后執行sql:
```
SELECT
*
FROM
videos
WHERE
third_video_id = 7482714718927326224
```
