2012-04-21 54 views
0

我有一台这样的:从另一个表计数[MySQL的]

+----+---------+-------------+ 
| id | site_id | search_term | 
+----+---------+-------------+ 
| 1 |  2 | apple  | 
| 2 |  2 | banana  | 
| 3 |  3 | cheese  | 
| 4 |  1 | aubergine | 
+----+---------+-------------+ 

而另一个是这样的:

+----+---------+-------------+ 
| id | site_id | search_term | 
+----+---------+-------------+ 
| 1 |  2 |   1 | 
| 2 |  2 |   2 | 
| 3 |  2 |   1 | 
| 4 |  2 |   1 | 
| 5 |  3 |   3 | 
| 6 |  1 |   4 | 
+----+---------+-------------+ 

我想找出每个SEARCH_TERM在多少次显示出来第二张桌子,以及多少次。

换句话说,从这个数据,如果我问SITE_ID 2,我想这将返回:

+-------------+-------+ 
| search_term | count | 
+-------------+-------+ 
| apple  |  3 | 
| banana  |  1 | 
+-------------+-------+ 

我熟悉基本的连接和等,以及COUNT ,但我不知道如何从另一张桌子数数。

谢谢!

回答

1

试试这个:

select t1.search_term, count(*) from t1 
join t2 on t1.id = t2.search_term and t1.site_id = t2.site_id 
where t1.site_id = 2 
group by t1.search_term 
2

你可以加入表一起,数排在第二表中的号码:

select t1.search_term 
,  count(t2.id) 
from table1 t1 
left join table2 t2 
on  t1.id = t2.search_term 
group by t1.search_term