我有一个场景,一个查询将像基于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
请加强我的查询。
答案 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
并参考以下链接: