对多个表进行分组的方法

Approach to group multiple tables

我有table的标题、工作室、艺术家和曲目。

我正在尝试从标题中提取标题 table、从工作室中提取工作室名称 table、从艺术家中提取艺术家姓名 table 以及从曲目中提取标题的曲目数table.

我加入了三个 table 并使用以下查询从中提取了数据。

然后为了获取每个关联标题的曲目数,我使用了以下查询:

select t.title,s.studioname,a.artistname,count(tracks.titleid) as NumOfTracks 
from titles t, studios s, artists a,tracks where (t.studioid = s.studioid) and (t.artistid = a.artistid) and (tracks.titleid = t.titleid) 
group by t.title,s.studioname,a.artistname,tracks.titleid;

我的问题是这种方法是否是从多个 table 中分组和提取数据的正确方法,或者它们在上述查询中是否有任何缺陷?我将不胜感激。

非常感谢。

该方法似乎是正确的(编辑:如评论中所述,group by 子句中的 tracks.titleid 除外),尽管隐式连接(即 [=13= 中有多个表) ] 子句)已被弃用多年。您可能应该使用显式连接:

SELECT   t.title, 
         s.studioname,
         a.artistname,
         COUNT(tracks.titleid) as NumOfTracks 
FROM     titles t
JOIN     studios s ON t.studioid = s.studioid
JOIN     artists a ON t.artistid = a.artistid
JOIN     tracks ON tracks.titleid = t.titleid
GROUP BY t.title, s.studioname, a.artistname;