我是全新的mysql,所以请原谅我在这里的知识水平,并随时指导我在更好的方向,如果我正在做的是超出日期。大型Mysql查询(加入结果并修改字符串)
我从数据库中提取信息来填写一个php页面。
我的表:
服务器:
|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 |
结果中的位置是位置表中位置的第一个数字块(1-5-15-2 - > 1,1-8-5-8 - > 1,21-2-5 -8→21,17-2-5-8→17)。 计数是具有相同名称和相同第一个位置块的所有服务器的总和。
有人认为只有一个查询才有可能得到这个结果吗?
感谢您的任何答案!
在那里每个那些更多项目表?看起来你有外键作为主键?什么是类型?为什么它不在结果中?此外,为什么在结果中的位置1 1 17,在您的示例中不存在 – 2014-10-08 12:44:08
@naturalc是每个表中都有更多的项目。服务器表有20000个项目和文章表500.女巫类型?结果中的位置是位置表中位置的第一个块。 (1-5-15-2→1,1-8-5-8→1,21-2-5-8→21,17-2-5-8→17) – TobsA13 2014-10-08 12:54:20