【发布时间】:2021-03-22 16:32:28
【问题描述】:
我正在处理一个带有分页的网页,我现在面临的一个问题是它不适用于我创建的过滤器。
主要分页通过选择具有特定用户 ID 的所有内容来计算我的表格。这在没有过滤器的情况下效果很好,但是使用过滤器我需要更改此查询以添加内部连接和组 concat,因为其他表中的内容被过滤并通过 ID 连接到主表。
我现在有这个过滤器查询:
SELECT DISTINCT games.gameID,games.idUsers,games.gamename,games.comments,games.dateofpurchase,games.lentoutto,games.gameinfo,games.price,games.pictureurl,games.finished,games.rating,games.releasedate, GROUP_CONCAT(DISTINCT labels.labelname ORDER BY labels.labelname) AS labelname, GROUP_CONCAT(DISTINCT category.categoryname ORDER BY category.categoryname) AS categoryname, GROUP_CONCAT(DISTINCT gamemode.gamemode ORDER BY gamemode.gamemode) AS gamemode, GROUP_CONCAT(DISTINCT platform.platform ORDER BY platform.platform) AS platform FROM games LEFT JOIN gamelabels ON gamelabels.gameID=games.gameID LEFT JOIN labels ON labels.labelID=gamelabels.labelID LEFT JOIN categoryconnect ON categoryconnect.gameID=games.gameID LEFT JOIN category ON category.categoryID=categoryconnect.gamescategory LEFT JOIN gamemodesconnect ON gamemodesconnect.gameID=games.gameID LEFT JOIN gamemode ON gamemode.gamemodeID=gamemodesconnect.gamemodeID LEFT JOIN platformconnect ON platformconnect.gameID=games.gameID LEFT JOIN platform ON platform.platformID=platformconnect.platformconnectID WHERE idUsers = '".$userId."' $filter GROUP BY games.gameID ORDER BY gamename
这个过滤器查询就像一个魅力,但你如何计算它返回的数量或行数?
到目前为止,我尝试的所有方法都在选择部分给了我错误。像这样的事情:
SELECT COUNT ( DISTINCT games.gameID,games.idUsers,games.gamename,games.comments,games.dateofpurchase,games.lentoutto,games.gameinfo,games.price,games.pictureurl,games.finished,games.rating,games.releasedate, GROUP_CONCAT(DISTINCT labels.labelname ORDER BY labels.labelname) AS labelname, GROUP_CONCAT(DISTINCT category.categoryname ORDER BY category.categoryname) AS categoryname, GROUP_CONCAT(DISTINCT gamemode.gamemode ORDER BY gamemode.gamemode) AS gamemode, GROUP_CONCAT(DISTINCT platform.platform ORDER BY platform.platform) AS platform) FROM games LEFT JOIN gamelabels ON gamelabels.gameID=games.gameID LEFT JOIN labels ON labels.labelID=gamelabels.labelID LEFT JOIN categoryconnect ON categoryconnect.gameID=games.gameID LEFT JOIN category ON category.categoryID=categoryconnect.gamescategory LEFT JOIN gamemodesconnect ON gamemodesconnect.gameID=games.gameID LEFT JOIN gamemode ON gamemode.gamemodeID=gamemodesconnect.gamemodeID LEFT JOIN platformconnect ON platformconnect.gameID=games.gameID LEFT JOIN platform ON platform.platformID=platformconnect.platformconnectID WHERE idUsers = '".$userId."' $filter GROUP BY games.gameID ORDER BY gamename
【问题讨论】:
标签: mysql count inner-join group-concat