繁体   English   中英

大Mysql查询(联接计入结果并修改字符串)

[英]Big Mysql Query (Join counts in the result and modify a string)

我是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)。 该计数是具有相同名称和相同第一个位置块的所有服务器的总和。

有谁认为有可能仅通过一个查询就可以得到此结果?

感谢您的回答!

请试一下:

SELECT 
    s.locationID as id, a.name, count(*) as count
FROM
    `Server` s
    LEFT JOIN
    `Article` a ON s.ArticleID = a.ArticleID
GROUP BY s.locationID, a.name

这样的事情应该工作

select 
    s.location_id as location, a.name, count(location) as count 
from 
    server as s, article as a 
where 
    s.articleID = a.articleID 
group by location, a.name

检查一下

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  ;

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM