0

我有一张这样的桌子:

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

谢谢!

4

2 回答 2

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
于 2012-04-21T15:51:08.110 回答
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
于 2012-04-21T16:25:04.677 回答