Mysql Query没有给出一个表的所有结果

时间:2014-05-04 23:20:01

标签: mysql sql

我有两张桌子:

表1:

genreartismap:
id - pk
artistid
genreid
val - this column has default value 1

表2:

genre:
id - pk
name

现在我要做的是在genreartismap.artistid列表中获取不同的genre.names。

对于Ex:

我有genreartismap.artistid = 7,4,6​​,9,10,8

我有genreartismap.genreid与此列表相关联的艺术家= 4,5,6

我想获得以下结果:

genreid genrename   count
4       Electronica 2
5       Punk        4
6       EDM         3

我写了以下查询:

SELECT  `genreartistmap`.genreid AS id,  `genre`.name AS name, SUM(  `genreartistmap`.val ) AS val
FROM  `genreartistmap` 
LEFT JOIN  `genre` ON  `genreartistmap`.artistid
IN ( ids ) 
GROUP BY genreid

1 个答案:

答案 0 :(得分:1)

我认为你在错误的专栏上做了join。我希望genreartistmap.genreid = genre.id

SELECT gam.genreid AS id,  g.name AS name, SUM(gam.val ) AS val
FROM  `genreartistmap` gam JOIN 
      `genre` g
       ON  gam.genreid = g.id
GROUP BY gam.genreid;

我还认为inner join足以支持此查询,并引入表别名来简化它。