【发布时间】:2013-05-09 15:20:35
【问题描述】:
我有一张桌子,我需要从中获取联系人。所以我使用一个复杂的查询来从我的“sms”表中检索所有的联系人。
但是,它应该只计算提供的“imei”字段的记录,但我的查询会不断返回特定联系人的所有计数。
下面是使用代码:
$sql = $this->db->query('
SELECT
t1.mnumber AS t1_number, t1.mcontent AS t1_content, t1.mcontact as t1_contact, SUM(t2.TOTAL) AS mTotal
FROM
sms t1
JOIN
(SELECT
mContent, mcontact, COUNT(mNumber) AS TOTAL, mnumber, MAX(mID) mID
FROM
sms
GROUP BY mContact) t2 ON t1.mcontact = t2.mcontact
AND t1.mid = t2.mid
WHERE t1.mIMEI = ' . (IMEI) . '
GROUP BY t1.mContact
ORDER BY t1.mid DESC');
return $sql->result();
【问题讨论】:
-
当未在组中指定
SELECT列表中的所有列时,请注意在 MySQL 中使用GROUP BY。您的结果可能不确定... -
您的
WHERE子句在内部子查询执行其计数之后进行评估。
标签: php mysql sql codeigniter join