【发布时间】:2011-07-04 21:40:05
【问题描述】:
我正在尝试获得一个结果集,该结果集显示来自 2 个不同表的 2 列,按一列分组并对另一列求和。
这个 sql 在 phpmyadmin 中工作:
SELECT SUM(field_count_value), field_region_value
FROM field_data_field_count, field_data_field_region
WHERE field_data_field_count.entity_id = field_data_field_region.entity_id
GROUP BY field_data_field_region.field_region_value
ORDER BY field_count_value DESC
大致显示我需要的内容::
-----------------
COUNT REGION
-----------------
4000 S
600 E
-----------------
但是当我将其转换为 drupal 7 sql 查询语法时:
$nodes = db_query("SELECT SUM(field_count_value), field_region_value
FROM field_data_field_count, field_data_field_region
WHERE field_data_field_count.entity_id = field_data_field_region.entity_id
GROUP BY field_data_field_region.field_region_value
ORDER BY field_count_value DESC");
foreach ($nodes as $record) {
echo $record->field_region_value . $record->field_count_value;
}
我只能按列分组显示:
-----------------
REGION
-----------------
S
E
-----------------
任何帮助将不胜感激。我已经咨询了官方 d7 文档以了解这一点——从那里可以使用的示例并不多。
【问题讨论】:
-
对于此类查询,您应该使用EntityFieldQuery。