[英]CROSS JOIN in complicated query
如何將查詢結果與自身交叉連接?
sql-fiddle: http ://sqlfiddle.com/#!2/88f5e2/2
SELECT t.tid ,count(*) AS count
FROM taxonomy_index t
JOIN taxonomy_term_data td ON td.tid = t.tid
WHERE t.created > UNIX_TIMESTAMP() - 3 * 86400 AND td.vid = 1
GROUP BY t.tid
ORDER BY count DESC
LIMIT 0, 5;
查詢結果為:
tid count
4429 6
2634 5
1703 4
1742 4
4468 4
我需要:
4429 4429 6
2634 4429 5
1703 4429 4
1742 4429 4
4468 4429 4
4429 2634 .
2634 2634 .
1703 2634 .
1742 2634
4468 2634
4429 1703
2634 1703
1703 1703
1742 1703
4468 1703
.... ....
SELECT t_outer.tid as tid, t_inner.tid as tid_group, t_inner.count, t_inner.name
FROM taxonomy_index as t_outer
JOIN (
SELECT t.tid ,count(*) AS count, td.name, td.vid
FROM taxonomy_index t
JOIN taxonomy_term_data td ON td.tid = t.tid
WHERE t.created > 0 AND td.vid = 1
GROUP BY t.tid
) t_inner
WHERE t_outer.created > 0 AND t_inner.vid = 1
ORDER BY count DESC
LIMIT 0, 20;
產量:
TID TID_GROUP COUNT NAME
4429 4429 3 A1
4468 4429 3 A1
4429 4429 3 A1
2634 4429 3 A1
4429 4429 3 A1
2634 4429 3 A1
4429 2634 2 B1
4468 2634 2 B1
4429 2634 2 B1
2634 2634 2 B1
4429 2634 2 B1
2634 2634 2 B1
2634 4468 1 C1
4429 4468 1 C1
4468 4468 1 C1
4429 4468 1 C1
2634 4468 1 C1
4429 4468 1 C1
http://sqlfiddle.com/#!2/88f5e2/29
貸方到期的貸方: 不分組計算
更新:抱歉,忘記限制外部數據。 更新2:我也忘記了潮汐清單欄
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.