您可以在以下网址尝试查询

http://sqlfiddle.com/#!9/839d2/1

查询1

有队长的所有行星的列表.它显示id_planet,planet_name,每个行星上的总机长以及在那里进行的战斗次数(如果有).

SELECT DISTINCT aa.id_planet, aa.planet_name, _aa.captains_count, _bb.battles_count

FROM planet AS aa

INNER JOIN soldier AS bb

ON aa.id_planet = bb.planet_id

INNER JOIN (

SELECT planet_id, COUNT(*) AS captains_count

FROM soldier

WHERE rank = 'captain'

GROUP BY planet_id

) AS _aa

ON aa.id_planet = _aa.planet_id

LEFT JOIN (

SELECT id_planet_battle, COUNT(*) AS battles_count

FROM battle

GROUP BY id_planet_battle

) AS _bb

ON aa.id_planet = _bb.id_planet_battle

WHERE bb.rank = 'captain';

您可以使用以下方法获得相同的结果:

SELECT DISTINCT aa.id_planet, aa.planet_name,

(

SELECT COUNT(*)

FROM soldier AS _aa

WHERE _aa.rank = 'captain' AND aa.id_planet = _aa.planet_id

GROUP BY _aa.planet_id

) AS captains_count,

(

SELECT COUNT(*)

FROM battle AS _bb

WHERE aa.id_planet = _bb.id_planet_battle

GROUP BY _bb.id_planet_battle

) AS battles_count

FROM planet AS aa

INNER JOIN soldier AS bb

ON aa.id_planet = bb.planet_id

WHERE bb.rank = 'captain';

查询3

SELECT aa.name, aa.rank, bb.planet_name AS planet_from, (

SELECT COUNT(*)

FROM soldier AS _aa

WHERE _aa.planet_id = aa.planet_id

) AS number_of_soldiers,

(

SELECT COUNT(*)

FROM battle AS _bb

WHERE _bb.id_planet_battle = aa.planet_id

) AS number_of_battles

FROM soldier AS aa

INNER JOIN planet AS bb

ON aa.planet_id = bb.id_planet;

在这里,我没有像查询1.1那样使用Joins来计算number_of_soldiers和number_of_battles,因为那将是一个相关的子查询,因此它无法访问外部查询(https://dev.mysql.com/doc/refman/5.5/en/from-clause-subqueries.html).

错误的查询:

SELECT DISTINCT aa.id_planet, aa.planet_name, _aa.captains_count, _bb.battles_count

FROM planet AS aa

INNER JOIN soldier AS bb

ON aa.id_planet = bb.planet_id

INNER JOIN (

SELECT COUNT(*) AS captains_count

FROM soldier AS _aa

WHERE _aa.rank = 'captain' AND aa.id_planet = _aa.planet_id

GROUP BY _aa.planet_id

) AS _aa

ON aa.id_planet = _aa.planet_id

LEFT JOIN (

SELECT COUNT(*) AS battles_count

FROM battle AS _bb

WHERE aa.id_planet = _bb.id_planet_battle

GROUP BY _bb.id_planet_battle

) AS _bb

ON aa.id_planet = _bb.id_planet_battle

WHERE bb.rank = 'captain';

因此,上面的查询是错误的,并产生错误:’where子句’中的未知列’aa.id_planet’.

至于您要求的第二个查询,我希望其他人可以尝试一下.

cocoa mysql_基本MySQL查询相关推荐

  1. 每小时的数据mysql_荐 mysql查询每小时数据和上小时数据的差值

    一.前言 需求是获取某个时间范围内每小时数据和上小时数据的差值以及比率.本来以为会是一个很简单的 sql ,结果思考两分钟发现并不简单,网上也没找到参考的方案,那就只能自己慢慢分析了. 刚开始没思路, ...

  2. 打印查询到的mysql_从mysql查询中打印随机行

    我正在寻找一种创建协作翻译部件的方式.所以我有一个mysql数据库和表(称为翻译),以及一个允许用户一次翻译一页的小脚本. 但我不太相信我的剧本.我认为它不够高效.首先,mysql获取所有具有空'en ...

  3. php while mysql_我怎么能避免在PHP的While循环中使用MySQL查询

    我有一个输出类列表的while循环.在类数据库中,教师名称由用户数据库中的教师ID确定. 这是我的数据库结构. Classes Database --------------------------- ...

  4. 结构化查询语句简称mysql_整理MySql常用查询语句

    MySql的性能优化 性能优化是通过某些有效的方法提高MySQL数据库的性能.性能优化的目的是为了是MySQL数据运行速度更快.占用的磁盘空间更小.性能优化包括很多方面,例如优化查询速度.优化更新速度 ...

  5. 黄聪mysql_黄聪:mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法

    mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添 ...

  6. mysql查询字段大小写结果相同,mysql大小写查询不敏感,mysql5.7查询不区分大小写解决方案。

    下面有两条sql,主键查询,在mysql中查询到的结果相同. SELECT* FROM USER WHEREid = 'EM58hdK4nXC';SELECT* FROM USER WHEREid = ...

  7. MySQL查询进阶之多表查询

    一.多表查询 1.引出 2.笛卡尔积 3. 笛卡尔积的解决方法 二.多表查询分类 1.等值连接和非等值连接 2.自连接和非自连接 3.内连接和外连接 SQL92:使用(+)创建连接 SQL99语法实现 ...

  8. smarty mysql_Smarty处理mysql查询数组

    Smarty处理mysql查询数组 MySQL的查询结果一般是一个数组,而不是所有结果集.因此我们需要将结果全部存到数组中进行处理,然后就可以很轻松的再Smarty中使用了. PHP Mysql 代码 ...

  9. MYSQL 查询数据排序数据和分组数据

    在mysql查询过程中,可以对数据进行过滤,也可以对数据进行排序,可以对数据分组,下面分别讲述排序数据和分组数据例子.1,数据的排序 使用 ORDER BYselect * from where id ...

最新文章

  1. 最新数据分析与商业智能趋势前瞻
  2. 这样讲原码、反码、补码!学妹连夸我很猛!!
  3. 大数据平台搭建包含哪些层级
  4. sqlserver 没有维护计划_设定数据库备份计划,安全放心不怕事!
  5. 基于网页分析构思出的正文提取算法
  6. Kubernetes 小白学习笔记(10)--搭建一个kubernetes集群-组建节点网络
  7. windows下安装sqlmap 详细教程
  8. 「缠师课后回复精选」第9课 甄别“早泄”男的数学原则!
  9. 信捷无线触摸屏与plc实现多从站MODBUS通讯
  10. 大一html网页制作PPT,HTML网页制作.ppt
  11. 信息系统项目管理师(软考高项)
  12. 网络安全:ARP和IP协议
  13. 英文歌的计算机普,好听的英文歌:See You Again--DJ Frank ECharlie Puth
  14. 混合颜料-python实现
  15. UI设计--蓝湖切图
  16. 拼多多商家推广常见问题解答!
  17. 计算机图形学 学习笔记(七):二维图形变换:平移,比例,旋转,坐标变换等
  18. php的设计模式和mvc,mvc设计模式是什么
  19. 原来Oracle也不喜欢“蜀黍(r6笔记第54天)
  20. 刘诚昊20162316 第一周作业

热门文章

  1. 机器学习系列(1)_逻辑回归初步
  2. 初学Java Web(9)——学生管理系统(简易版)总结
  3. 11个强大的Visual Studio调试小技巧
  4. Java语言 泛型 类型擦除
  5. 分享一套 python 试题
  6. Fun Chat 饭聊手机软件
  7. LINUX 触摸屏驱动
  8. react native 网络请求 axios
  9. 问题分享:Js引用类型赋值
  10. sed实例(持续更新)