簡體   English   中英

交叉聯接復雜查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM