所以我有一个表格,其中一些产品重复,但点击次数的值不同。
name ---- clicks
iPhone 4
Samsung 2
iPhone 1
Samsung 5
我的选择功能是:
$select_table2 = 'SELECT * FROM `mytable`'; //WHERE NAME IS THE SAME
$sql2 = $db->query($select_table2);
while ($row = mysqli_fetch_array($sql2)) {
echo $row["name"];
echo $row["clicks"];
}
我需要这个输出:
iPhone 5
Samsung 7
我不想合并相同的行,因为它们还有一个不同的列。所以请不要简单地将它们合并并更新点击次数......
更新:
$pull_request = 'SELECT SUM(e.product_clicks),e.product_id, u.name, u.product_id FROM `oc_aa_affiliatecollclicktracking` AS e GROUP BY e.product_id LEFT JOIN `'.DB_PREFIX.'product_description` AS u ON e.product_id = u.product_id';
我试过这样但是它不能正常工作
答案 0 :(得分:1)
您想按组执行SUM命令
$query = "SELECT `name`,SUM(`clicks`) FROM `mytable` GROUP BY `name`";
编辑:另一个答案比我的更完整。我忘了选择name
字段。加入。
答案 1 :(得分:1)
使用sum()
和GROUP BY name
来获得所需的输出。
$select_table2 = 'SELECT name,SUM(clicks) FROM `mytable` GROUP BY name';
$sql2 = $db->query($select_table2);
while ($row = mysqli_fetch_array($sql2)) {
echo $row["name"];
echo $row["clicks"];
}
虽然会产生,
iPhone 5
Samsung 7
了解更多信息
修改强>
分组应该在加入后来。
$pull_request = 'SELECT SUM(e.product_clicks) as clicks,e.product_id, u.name, u.product_id FROM `oc_aa_affiliatecollclicktracking` AS e
LEFT JOIN `'.DB_PREFIX.'product_description` AS u ON e.product_id = u.product_id
GROUP BY e.product_id';
答案 2 :(得分:1)
您需要的是用于汇总点击次数[SUM(点击次数)]的聚合函数,以及用于定义分类条件[GROUP BY名称]的Group By子句。
另一个答案是错误的,假设通过更改选择字段列表添加聚合' SUM',关联引用(例如:$ row数组的索引字符串)保持不变,正确的查询将是:
$select_table2 = 'SELECT name, SUM (clicks) AS clicks FROM mytable GROUP BY name';
请注意SUM(点击)AS点击的别名,因此数组$ row中返回的字段会保留其索引(点击次数,名称...而不是' SUM(点击次数)')
其余基本相同。
干杯!
答案 3 :(得分:-1)
尝试:
$select_table2 = 'SELECT name, SUM (clicks) FROM mytable GROUP BY name';