Php SQL查询计数问题
我有两个表Php SQL查询计数问题,php,mysql,sql,Php,Mysql,Sql,我有两个表artist和members。艺术家与会员之间有零对多的关系。(一个艺术家可能有0个或多个成员) 所以,我想得到艺术家的所有领域,以及他的会员总数 我编写了一个查询,但如果表中没有艺术家(艺术家表为空),它将返回0count。我正在使用这个查询 SELECT a.artistname, count(m.id) as total FROM artist a, members m WHERE m.artist_id = a.id 如果没有艺术家,它不应该返回任何东西
artist
和members
。艺术家与会员之间有零对多的关系。(一个艺术家可能有0个或多个成员)
所以,我想得到艺术家的所有领域,以及他的会员总数
我编写了一个查询,但如果表中没有艺术家(艺术家表为空),它将返回0
count。我正在使用这个查询
SELECT a.artistname, count(m.id) as total
FROM artist a, members m
WHERE m.artist_id = a.id
如果没有艺术家,它不应该返回任何东西
谢谢大家!
我假设您的字段名是
艺术家
表中的艺术家名
查询应如下所示:
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,要使用sqlcount
您需要使用分组依据
这应该可以:
SELECT a.artistname,
count(m.id)
FROM artist a
LEFT JOIN members m
ON m.artist_id = a.id;
也许艺人的名字是空的。你查过数据了吗?您可以尝试以下修改的查询:
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 <> '';
选择a.artistname,计数(m.id)作为总数
来自艺术家a,成员m
其中m.artist_id=a.id
a.artistname不为空
和a.艺人名称“;
这是查询的正确SQL结果。它没有什么问题,因为您使用的是COUNT()
函数。我想获取artistname和成员数。所以,如果没有艺术家,这意味着,不应该有任何成员与该艺术家和记录的数量应该是0。但是,这里显示的是1条记录。没有艺术家。所以,artistname为NULL,count也显示了不应该存在的内容。这就是它将显示的内容,为什么不使用php来更改要显示的内容,即如果0 echo为NULL;使用脚本处理查询不是最佳做法。我相信应该有一个解决方案来克服这个问题。如果你想艺术家姓名
和会员人数
,你应该使用分组方式
。我在您的查询中没有看到任何group by
子句。