我想问一下
我有2张桌子:
显示数据“no_city”
我的意思是表产品中的这个:
no | product_name | price | city
1 | apple | $5 | 1
在这样的表城中:
no_city | city_name
1 | london
我有一个chartjs的代码
我使用数据库中的计数数据,这是我的代码
$city = $GLOBALS['conn']->GetAll("SELECT city AS `labels`, COUNT(city) AS `values` FROM product GROUP BY city");
在图表预览数据城市显示“1”它应该是城市“伦敦”
问题是如何将图表预览中的数字“1”更改为城市名称“london”
我尝试使用INNER JOIN而不是effectiv
先生,请帮帮我如何将图表预览中的数字“1”更改为城市名称“london”
谢谢
答案 0 :(得分:0)
使用联接从其他表中引入城市名称:
SELECT
c.city_name AS labels,
COUNT(p.city) AS values
FROM city c
LEFT JOIN product p
ON p.city = c.no_city
GROUP BY
c.no_city, c.city_name
请注意,将city
连接到product
表是合乎逻辑的,因为这可以保证每个城市都会出现在结果集中。对于那些没有产品的城市,将报告为零。
答案 1 :(得分:0)
您可以使用LEFT JOIN来处理没有产品的城市的情况。
试试这段代码:
$city = $GLOBALS['conn']->GetAll(
"SELECT
city.city_name AS `labels`,
COUNT(product.city) AS `values`,
city.no_city
FROM city c
LEFT JOIN product p
ON p.city = c.no_city
GROUP BY c.no_city"
);