如何根据列字段的数量选择记录

时间:2014-04-07 06:54:30

标签: php mysql sql

我有一个场景,一个查询将像基于status = 1的选择记录一样工作,并且在数据库中找到大量记录。 假设我想选择最大状态数为1的艺术家,并从其他表中获取名称。 另一个问题是我的查询是重复记录。 我的疑问:

SELECT order.status, 
       order.artist_id, 
       web_user.uFname, 
       web_user.uLname, 
          web_user.uID 
FROM `order` 
INNER JOIN `web_user` 
ON web_user.uID = order.artist_id 
HAVING order.status = '1'

我得到的记录集:

status artistid uFname   uLaname  uID
1      14       Pitbull  Armando  14
1      14       Pitbull  Armando  14
1      13       Enrique  Iglesias 13
1      15       Robyn    Rihanna  15
1      15       Robyn    Rihanna  15
1      15       Robyn    Rihanna  15

我很想要:

downloadtimes artistid uFname   uLaname      uID
2             14       Pitbull  Armando      14
1             13       Enrique  Iglesias     13
3             15       Robyn    Rihanna      15

请加强我的查询。

2 个答案:

答案 0 :(得分:1)

您可以使用COUNT()

SELECT 
COUNT(*) AS downloadtimes , 
order.artist_id, 
web_user.uFname, 
web_user.uLname, 
web_user.uID 
FROM `order` 
INNER JOIN `web_user` ON web_user.uID = order.artist_id 
WHERE order.status = '1'
GROUP BY order.artist_id

答案 1 :(得分:0)

您应该使用count

像:

COUNT(*) AS downloadtimes

你应该像你完整的代码一样添加:

SELECT 
COUNT(*) AS downloadtimes , 
order.artist_id, 
web_user.uFname, 
web_user.uLname, 
web_user.uID 
FROM `order` 
INNER JOIN `web_user` ON web_user.uID = order.artist_id 
WHERE order.status = '1'
GROUP BY order.artist_id

并参考以下链接:

SQL COUNT