mysql - Big Mysql 查询(连接结果中的计数并修改字符串)

标签 mysql sql count

我是 mysql 的新手,所以请原谅我的知识水平,如果我所做的事情已经过时,请随时指导我更好的方向。

我正在从数据库中提取信息来填充 php 页面。

我的 table :

服务器:

|ServerID (int) | ArticleID (int) | locationID (int) |
|   1           |       46        | 55               |
|   2           |       11        | 81               |
|   3           |       81        | 46               |
|   4           |       55        | 11               |
|   5           |       81        | 99               |
|   5           |       11        | 52               |

文章:

|ArticleID (int)  | Name (varchar)  | Typ (int) |
|   46            |   domain        | 0         |
|   81            |   root-server   | 1         |
|   55            |   vserver       | 2         |
|   11            |   root-server2  | 1         |

地点:

|LocationID (int) | location (varchar) | 
|   46            | 1-5-15-2           |
|   81            | 1-5-14-2           |
|   55            | 2-25-1-9           |
|   11            | 21-2-5-8           |
|   99            | 17-2-5-8           |
|   52            | 1-8-5-8            |

结果:

|location (int) | name (varchar) | count (int) |
| 1             | root-server    | 1           |
| 1             | root-server2   | 2           |
| 17            | root-server    | 1           |

结果中的位置是位置表中该位置的第一个数字 block (1-5-15-2 -> 1, 1-8-5-8 -> 1, 21-2-5-8 -> 21, 17-2-5-8 -> 17)。 该计数是具有相同名称和相同第一个位置 block 的所有服务器的总和。

有人认为仅通过一次查询就可以得到这个结果吗?

感谢您的回答!

最佳答案

检查这个

SELECT  SUBSTRING_INDEX(location, '-', 1) as LID,Article.Name,Count(*) as Count 
from Location join Server  
on Server.locationID=Location.locationID  
join Article on Article.ArticleID=Server.ArticleID
group by LID,Article.ArticleID  ;

DEMO

关于mysql - Big Mysql 查询(连接结果中的计数并修改字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26257131/

相关文章:

PHP PDO 如何显示 top SQL 计数

python - Rawsql查询数组转化为格式化的html表

mysql - 表中的 SQL 字数限制

google-app-engine - 如何获取数据存储中表中的行数?

mysql - 单个 SQL 可以通过不同的 where 子句获得多个计数,这可能吗?

mysql - 优化与数据库的工作

php - 无法从 MySQL 表中检索数据

mysql - 在另一个 phpmyadmin 中运行一个查询

c# - 为什么字符串数组的 "Count"Intellisensed 属性会变形为 "Length"?

MySQL 查询以识别与特定模式的近似重复匹配,更新子表