【发布时间】:2013-12-06 06:49:59
【问题描述】:
我最近接管了一个站点,其中包含一些似乎有点超出我能力的 SQL 查询。查询要做的是找到属于用户的交易,然后找到附加到该交易的反馈分数(1,2 或 3)。它应该计算所有评级(1 为负面,2 中立,3 正面)供我以后使用。代码如下:
$user = mysql_fetch_assoc($this->db_query('
SELECT
`UserAccess`.*,
COUNT(IF(`Feedback`.`rating`=1, 1, NULL)) AS "negative",
COUNT(IF(`Feedback`.`rating`=2, 1, NULL)) AS "neutral",
COUNT(IF(`Feedback`.`rating`=3, 1, NULL)) AS "positive"
FROM
`UserAccess`
LEFT JOIN
`Trades`
ON
`Trades`.`owner` = `UserAccess`.`ID`
LEFT JOIN
`Feedback`
ON
`Feedback`.`trade` = `Trades`.`ID`
WHERE
`UserAccess`.`ID` = "'.$_COOKIE[Auth::$config['cookie_name_id']].'"
GROUP BY
`UserAccess`.`ID`
LIMIT
1
'));
我的想法是我可以使用这些数字来计算总体评分,使用 user['negative']、user['positive'] 等。
这对我来说涉及到很多关于 sql 的新概念,所以我很难确定错误。我认为老开发人员对我使用的是早期版本的 PHP 也可能是相关的(所以它可能对他来说工作正常)。
谢谢
【问题讨论】: