首页 / MYSQL / MySQL查询联接和计数查询
MySQL查询联接和计数查询
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL查询联接和计数查询,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2426字,纯文字阅读大概需要4分钟。
内容图文
![MySQL查询联接和计数查询](/upload/InfoBanner/zyjiaocheng/884/b63580a462c24033a893549a704e07e3.jpg)
我正在尝试从Web应用程序的数据库中提取值,主持人可以在其中将公司添加到指定行业的列表中.此请求需要将每个行业的名称以及相关的活跃公司的数目一起列出,作为主持人的概述.
这些是我的表:
companies
____________________________________
| id | company | active |
|---------------------------|--------|
| 12 | Ton-o-Bricks Haulage | 0 |
| 16 | Roofs 'n' Walls | 1 |
| 23 | Handy Services | 1 |
| 39 | Carpentharry | 1 |
|---------------------------|--------|
industries
________________________
| id | industry | mod |
|------------------|-----|
| 2 | Roofing | 2 |
| 4 | Carpentry | 2 |
| 7 | Handyman | 2 |
| 8 | Haulage | 2 |
| 9 | Electrician | 2 |
|------------------|-----|
links
___________________________
| id | industry | company |
|--------------------------|
| 1 | 2 | 23 |
| 2 | 4 | 16 |
| 3 | 4 | 39 |
| 4 | 7 | 23 |
| 5 | 2 | 16 |
| 6 | 8 | 12 |
|--------------------------|
此查询有效,但不考虑不活跃的公司:
SELECT industries.id, industries.industry, count(links.id) as count FROM industries LEFT JOIN links on links.industry=industries.id WHERE industries.mod=2 GROUP BY industries.id
// -Results =======
2 Roofing 2
4 Carpentry 2
7 Handyman 1
8 Haulage 1
9 Electrician 0
我需要它来仅增加活跃公司的数量,但是当我尝试这样做时,我得到的结果很奇怪:
SELECT industries.id, industries.industry, count(links.id) as count FROM industries LEFT JOIN links on links.industry=industries.id, companies WHERE industries.mod=2 AND companies.active=1 GROUP BY industries.id
// -Results =======
2 Roofing 6
4 Carpentry 6
7 Handyman 3
8 Haulage 3
9 Electrician 0
我知道我缺少一些简单的东西,只是无法弄清楚是什么
谢谢,
史蒂文
解决方法:
您可能需要尝试以下方法:
SELECT i.id, i.industry, count(l.id) as count
FROM industries i
LEFT JOIN (
SELECT l.industry, l.id
FROM links l
JOIN companies c ON (l.company = c.id AND c.active = 1)
) l ON (l.industry = i.id)
WHERE i.mod = 2
GROUP BY i.id, i.industry;
它应该返回以下结果:
+------+-------------+-------+
| id | industry | count |
+------+-------------+-------+
| 2 | Roofing | 2 |
| 4 | Carpentry | 2 |
| 7 | Handyman | 1 |
| 8 | Haulage | 0 |
| 9 | Electrician | 0 |
+------+-------------+-------+
5 rows in set (0.00 sec)
内容总结
以上是互联网集市为您收集整理的MySQL查询联接和计数查询全部内容,希望文章能够帮你解决MySQL查询联接和计数查询所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。