从另一个表[mysql]计数

时间:2012-04-21 15:48:37

标签: mysql sql count

我有一张这样的表:

+----+---------+-------------+
| 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,但我不确定如何从另一个表中计算内容。

谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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