从两个表中选择并按计数总计数和排序?

时间:2011-03-11 09:18:06

标签: mysql

表格结构id a1 a2
表B结构id时间b1 b2

表格数据

1 .. ..  
2 .. ..  
3 .. .. 

表B数据

1 129873635 blah blah  
2 129880006 blah blah  
2 129890676 blah blah  
3 129973635 blah blah  
2 129973635 blah blah  
3 129936350 blah blah  
2 129973635 blah blah  
1 129873835 blah blah  

我想从tablea和tableb中选择tablea.id = tableb.id和count tableb,其中time> x按表格数量排序..

我想要像

这样的结果
2 blah blah (which has 4 row in table B)  
1 blah blah (which has 2 row in table B)  
3 blah blah (which has 2 row in table B)  

请发帖询问谢谢......

1 个答案:

答案 0 :(得分:0)

OK首先,id应该是唯一的。 我建议重组tableB如下:

id,tableA_id,time,b1,b2,...
很明显,tableA_id指向另一个表,而不是TableB的id。

SELECT count(tableb.*), tablea.a1, tableB.time 
FROM tableA
INNER JOIN tableB ON (tableB.tableA_id = tableA.id)
WHERE tableB.time > now()
GROUP BY tablea.id
ORDER BY count(tableB.*)

对于速度索引字段
TableA.id(主键)
TableB.id(主键)
TableB.TableA_id
TableB.Time
TableB.blah(只是为了好运)