我有两张表artist
和members
。艺术家与成员有很多关系。 (一位艺术家可能有0人或多人)
所以,我想让艺术家的所有领域都拥有他所拥有的成员总数。
我写了一个查询,但如果表中没有艺术家,则返回0
计数(艺术家表为空)。我正在使用此查询
SELECT a.artistname, count(m.id) as total
FROM artist a, members m
WHERE m.artist_id = a.id
如果没有艺术家,它应该不会返回任何内容。
谢谢!
答案 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 <> '';