Php 按类别计算总体积
我有三张桌子 公司类别 公司 每日租金 我想从行业角度计算所有公司类别中存在的总数量 例如,类别A包含3家公司,类别B包含5家公司,因此我想对类别A中所有3家公司的总数量求和,依此类推,对于所有类别,我尝试这样做,但我不知道如何使用第三个表,因为我很容易能够计算类别中包含的公司,但不确定如何计算所有公司都存在于一个类别中 我的桌子结构Php 按类别计算总体积,php,mysql,sql,Php,Mysql,Sql,我有三张桌子 公司类别 公司 每日租金 我想从行业角度计算所有公司类别中存在的总数量 例如,类别A包含3家公司,类别B包含5家公司,因此我想对类别A中所有3家公司的总数量求和,依此类推,对于所有类别,我尝试这样做,但我不知道如何使用第三个表,因为我很容易能够计算类别中包含的公司,但不确定如何计算所有公司都存在于一个类别中 我的桌子结构 company_categories id name +------------+----------+ | 1
company_categories
id name
+------------+----------+
| 1 | A |
|------------|----------|
| 2 | B |
|------------|----------|
companies
id name category
+------------+----------+-----------+
| 1 | co 1 | 1 |
|------------|----------|-----------|
| 2 | co 2 | 2 |
|------------|----------|-----------|
| 3 | co 3 | 1 |
|------------|----------|-----------|
daily_stock_rates
id traded_volume company_id
+------------+------------------+---------------+
| 1 | 40 | 1 |
|------------|------------------|---------------|
| 2 | 80 | 2 |
|------------|------------------|---------------|
| 3 | 30 | 3 |
|------------|------------------|---------------|
这是我的密码
$sql = mysqli_query($connect, "SELECT c.id category_id, c.name category_name, com.id, com.category count( dsr.total_traded_volume ) total_volume
FROM company_categories c
INNER JOIN companies com ON c.id = com.category
LEFT JOIN daily_stock_rates dsr ON com.id = dsr.company_id
GROUP BY com.category
ORDER BY total_volume DESC LIMIT 10");
while($data = mysqli_fetch_assoc($sql)) {
echo $data['category_name'] . ": .".$data['total_volume'];
echo "<br />";
}
有谁能帮我两次,以获得与该类别相关的所有费率
SELECT cat.name, SUM(rat.traded_volume) volume
FROM company_categories cat
JOIN companies comp ON comp.category = cat.id
JOIN daily_stock_rates rat ON rat.company_id = comp.id
GROUP BY cat.name
ORDER BY volume DESC
LIMIT 10
与您的查询最重要的区别:
你需要的是数量,而不是数量
仅选择您要求的内容:按类别的数量。您不能选择
您希望看到的公司旁边的公司名称
反正在那里
我不认为是join错了,而是select列表和groupby子句错了 首先,如果需要卷的总数,请使用sum,而不是count。此外,如果要按类别计算总计,请不要在“选择”列表中包含太多字段:
SELECT c.id category_id, c.name category_name, sum( dsr.total_traded_volume ) total_volume
FROM company_categories c
LEFT JOIN companies com ON c.id = com.category
LEFT JOIN daily_stock_rates dsr ON com.id = dsr.company_id
GROUP BY c.id
ORDER BY total_volume DESC LIMIT 10