Php 循环内循环mysql计数
我已经设置了几个表来表示不同的产品,因为有些产品与其他产品具有不同的属性 我正试图计算一个特定城市列出的物品数量。我的sql语句如下:Php 循环内循环mysql计数,php,mysql,Php,Mysql,我已经设置了几个表来表示不同的产品,因为有些产品与其他产品具有不同的属性 我正试图计算一个特定城市列出的物品数量。我的sql语句如下: Select count(*) as count from location, tbl_books where location.city = tbl_books.location && location.city = 'London' && location.country = 'United Kingdom' Select
Select count(*) as count from location, tbl_books where location.city = tbl_books.location && location.city = 'London' && location.country = 'United Kingdom'
Select count(*) as count from location, tbl_clothes where location.city = tbl_clothes.location && location.city = 'London' && location.country = 'United Kingdom'
这将循环计算全国所有城市的结果。这些循环表示内部循环。外部循环遍历不同的类别表
我发现这不是很有效,我想知道是否有人能够提出任何解决这个问题的方法。我正在考虑创建一个包含城市和类别字段的主表,并在每次从特定城市添加新项目时增加主表中的计数。下面的SQL查询将通过将location table.city键与tbl_books.location连接起来,将count和location.city值作为一个查询返回钥匙
Select count(*) as count, location.city
from location, tbl_books
where location.city = tbl_books.location
group by location.city
这将按城市汇总英国所有城市的所有书籍(出自我的头脑,未经测试): 结果应该如下所示:
location | count
--------------------
London | 5
--------------------
Newcastle | 1
--------------------
... | ...
country | city | count
-----------------+-----------+-----------
France | Paris | 1
United Kingdom | Belfast | 2
United Kingdom | London | 3
...
此查询应提供所有城市和国家/地区的账面计数,无需循环:
选择
地点、国家,
地点,城市,
计数(*)为“计数”
来自洛卡顿
在location.city=tbl_books.location上内部连接tbl_books
按地点、国家、地点、城市分组
按地点、国家、地点、城市排序
结果如下所示:
location | count
--------------------
London | 5
--------------------
Newcastle | 1
--------------------
... | ...
country | city | count
-----------------+-----------+-----------
France | Paris | 1
United Kingdom | Belfast | 2
United Kingdom | London | 3
...
我看不到任何循环…这很好,我如何将这些计数添加到其他类别表的计数中?我不确定,这取决于表的数量及其结构。也许你应该问一个单独的问题。