SQL查询计数问题

时间:2014-03-23 18:16:12

标签: php mysql sql

我有两张表artistmembers。艺术家与成员有很多关系。 (一位艺术家可能有0人或多人)

所以,我想让艺术家的所有领域都拥有他所拥有的成员总数。

我写了一个查询,但如果表中没有艺术家,则返回0计数(艺术家表为空)。我正在使用此查询

SELECT a.artistname, count(m.id) as total 
    FROM artist a, members m 
    WHERE m.artist_id = a.id

如果没有艺术家,它应该不会返回任何内容。

谢谢!

Please check the result in image

3 个答案:

答案 0 :(得分:0)

我假设您的字段名称在artistname表格中为artist

查询应该是这样的:

SELECT artist.artistname, COUNT(members.id) AS total_members
FROM artist
LEFT JOIN members ON members.artis_id = artist.id
GROUP BY artist.artistname

使用join,并使用sql count,您需要使用group by

答案 1 :(得分:0)

这应该有效:

   SELECT a.artistname, 
          count(m.id)
     FROM artist a
LEFT JOIN members m 
       ON m.artist_id = a.id;

答案 2 :(得分:0)

也许艺术家名字是空的。你检查过数据了吗?您可以尝试以下修改过的查询:

SELECT a.artistname, count(m.id) as total 
FROM artist a, members m 
WHERE m.artist_id = a.id
AND   a.artistname is NOT NULL
AND   a.artistname <> '';