我有這樣的兩個MySQL表COUNT多條記錄MYSQL
main_date_family
main_date_non_family
我想湊NT重複記錄的兩個表中這樣
---------------------
| id_file | c |
---------------------
| 1 | 3 |
| 6 | 2 |
| 14 | 5 |
我有這樣的兩個MySQL表COUNT多條記錄MYSQL
main_date_family
main_date_non_family
我想湊NT重複記錄的兩個表中這樣
---------------------
| id_file | c |
---------------------
| 1 | 3 |
| 6 | 2 |
| 14 | 5 |
您需要使用UNION ALL
實現了輸出:
SELECT
t.id_file,
COUNT(*) AS c
FROM
(
SELECT id_file FROM main_date_family
UNION ALL
SELECT id_file FROM main_date_non_family
) AS t
GROUP BY t.id_file
編輯:
SELECT
t.id,
COUNT(t.id) AS c
FROM
(
SELECT id_file AS id FROM main_date_family
UNION ALL
SELECT id_file FROM main_date_non_family
) AS t
WHERE t.id IN (SELECT A.id_file
FROM main_date_family A
INNER JOIN main_date_non_family B ON A.id_file = B.id_file
)
GROUP BY t.id
解釋的想法:
id_file
s。id_file
。請注意, 這個組合將所有id_file
從這兩個表中保存爲 ,儘管它是一張表。id_file
s,這是第一步在 中找到的。GROUP BY
& COUNT
。 我猜 你知道還有什麼是group by
能否請您仔細檢查您的預期產出?爲什麼'2'在預期輸出中計數爲'4'? – 1000111
'| 14 | 3 |'是否預計?它不應該是'| 14 | 5 |'? – 1000111
是的,你是對的,它必須是5 –