我看到这里有一些关于三个表的SQL连接的不同线程。我有一个不同的问题正在给我带来麻烦。这可能是数据库设计问题,或者我没有正确使用联接? 我有三张桌子
artists (id, name)
contents (id, artist_id, title)
sales (id, artist_id, content_id, revenue, sales_date)
在我的数据库中,我想要获取每个艺术家的内容销售收入的艺术家ID ,内容ID 和总和 以下是我的SQL查询:
SELECT
artists.id AS artist, contents.id AS artist,
SUM(sales.revenue)AS revenue
FROM artist_sales
INNER JOIN contents ON sales.content_id = contents.id
INNER JOIN artists ON sales.artist_id = artists.id
WHERE
sales.artist_id = artists.id AND
sales.content_id = contents.id AND
sales.sales_date BETWEEN '2019-01-01' AND '2019-01-31'
GROUP BY artists.id;
我得到的结果是艺术家第一内容的收入
样本数据:
答案 0 :(得分:0)
如果您只想使用artist_id
,则不需要JOIN
。
SELECT artist_id, content_id, SUM(revenue)
FROM artist_sales
WHERE sales_date BETWEEN '2019-01-01' AND '2019-01-31'
GROUP BY artist_id, content_id
SELECT artist_id, SUM(revenue)
FROM artist_sales
WHERE sales_date BETWEEN '2019-01-01' AND '2019-01-31'
GROUP BY artist_id
现在,如果您想要歌手姓名或内容名称,则需要JOIN
,例如scaisEdge show