【发布时间】:2014-03-05 18:38:50
【问题描述】:
我有四个表,想知道某个名称有多少个位置和下载量。
names 和 locations 通过 names_locations 表连接
这是我的桌子:
表“names”
ID | name
=========
1 | foo
2 | bar
3 | zoo
4 | luu
表“locations”
ID | location
=============
1 | Hamburg
2 | New York
3 | Singapore
4 | Tokio
表格“names_locations”
ID | location_id | name_id
==========================
1 | 1 | 1
2 | 1 | 2
3 | 2 | 2
4 | 3 | 3
5 | 1 | 2
表格“downloads”
ID | name_id | timestamp
=========================
1 | 1 | 1394041682
2 | 4 | 1394041356
3 | 1 | 1394041573
4 | 3 | 1394041981
5 | 1 | 1394041683
结果应该是:
ID | name | locations | downloads
=================================
1 | foo | 1 | 3
2 | bar | 3 | 0
3 | zoo | 1 | 1
4 | luu | 0 | 1
这是我的尝试(没有下载栏):
SELECT names.*,
Count(names_locations.location_id) AS location
FROM names
LEFT JOIN names_locations
ON names.ID = names_locations.name_id
GROUP BY names.ID
【问题讨论】:
-
请更新您的问题并尝试解决此问题。
-
@AgRizzo 是的,这是我之前的问题
-
我无法理解 id=1 的位置数是 1,而 id=2 的位置数是 3 .. 如果我们考虑不同的位置,id=2 的位置数不应该是 2 吗?
-
@Nishant 在 names_locations 表中还有第三个
id=2