0

私はこのようなテーブルを1つ持っています:

+----+---------+-------------+
| 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が2番目のテーブルに何回表示されるか、そして何回表示されるかを知りたいです。

言い換えると、このデータから、site_id 2について質問した場合、これを返す必要があります。

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

COUNTだけでなく、基本的な結合などにも精通していますが、別のテーブルからカウントする方法がわかりません。

ありがとう!

4

2 に答える 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 に答える