ym1123568700 2024-04-18 22:53 采纳率: 50%
浏览 3
已结题

关于#sql#的问题,请各位专家解答!

(4)创建一个查询,查询出被预约最多的医生。结果显示“医生姓名”、“预约人数”、“年龄”、“职称”字段。查询保存在视图qT4_view中。
SELECT tdoctor.医生姓名,COUNT(tdoctor.医生ID) 预约人数,tdoctor.年龄,tdoctor.职称
FROM tdoctor,tsubscribe
WHERE tdoctor.医生ID=tsubscribe.医生ID
GROUP BY tdoctor.医生姓名

img

img


怎么把两个表不匹配的那个医生加到结果里面呢?求赐教

  • 写回答

2条回答 默认 最新

  • 关注

    晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    根据提供的查询语句,可以看出只查询了匹配的医生,没有查询不匹配的医生。如果想将不匹配的医生也加入查询结果,可以使用左连接(LEFT JOIN)来实现。下面是修改后的查询语句:

    SELECT tdoctor.医生姓名, COUNT(tsubscribe.医生ID) AS 预约人数, tdoctor.年龄, tdoctor.职称 
    FROM tdoctor 
    LEFT JOIN tsubscribe ON tdoctor.医生ID = tsubscribe.医生ID 
    GROUP BY tdoctor.医生姓名
    

    解决方案:

    1. 将原来的查询语句中的表连接方式从默认的内连接改为左连接(使用LEFT JOIN)。
    2. 将COUNT函数的参数修改为tsbuscribe表的医生ID,这样在不匹配的情况下,COUNT函数始终返回0,即预约人数为0。
    3. 根据医生姓名进行分组,保证每个医生只出现一次。

    注意事项:

    • 如果有医生没有在tsbuscribe表中预约,左连接时对应位置的列将会为NULL。
    • 已经在原查询语句中使用了表别名tdoctor和tsubscribe,所以只需要在原查询语句的基础上修改即可。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 创建了问题 4月18日

悬赏问题

  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证