当前位置: 首页 > news >正文

Postgresql基础实践教程(二)

十三、查询会员的预订开始时间题目如何列出名为"David Farrell"的会员的所有预订开始时间?预期结果starttime2012-09-18 09:00:002012-09-18 17:30:002012-09-18 13:30:002012-09-18 20:00:002012-09-19 09:30:002012-09-19 15:00:002012-09-19 12:00:002012-09-20 15:30:002012-09-20 11:30:002012-09-20 14:00:002012-09-21 10:30:002012-09-21 14:00:002012-09-22 08:30:002012-09-22 17:00:002012-09-23 08:30:002012-09-23 17:30:002012-09-23 19:00:002012-09-24 08:00:002012-09-24 16:30:002012-09-24 12:30:002012-09-25 15:30:002012-09-25 17:00:002012-09-26 13:00:002012-09-26 17:00:002012-09-27 08:00:002012-09-28 11:30:002012-09-28 09:30:002012-09-28 13:00:002012-09-29 16:00:002012-09-29 10:30:002012-09-29 13:30:002012-09-29 14:30:002012-09-29 17:30:002012-09-30 14:30:00[答案与解析]selectbks.starttimefromcd.bookings bksinnerjoincd.members memsonmems.memid=bks.memidwheremems.firstname='David'andmems.surname='Farrell';INNER JOIN(内连接)是最常用的连接方式。它的作用是根据连接条件把两张表组合起来——在这个例子里,我们会拿 members 表中的每个会员 ID 去 bookings 表中找匹配的记录。找到匹配后,就会返回一行包含两张表数据的组合记录。注意这里给每张表都起了个别名(bks 和 mems)。这么做有两个好处:一是写起来方便,二是如果同一张表要被连接多次,就能区分不同次连接产生的列。先别管 SELECT 和 WHERE 子句,咱们重点看看 FROM 语句生成了什么。之前的例子里,FROM 后面就是简单的一张表,但现在呢?是另一张表这张表是由 bookings 和 members 两张表组合而成的。下面能看到连接后的部分输出结果:对于 members 表里的每个会员,连接操作都会在 bookings 表中找出所有匹配的会员 ID。每找到一个匹配,就会生成一行,把 members 表和 bookings 表的对应行拼在一起。显然,光这样出来的信息太多了,实际问题都需要进一步筛选。在咱们的查询里,用 SELECT 子句开头部分来选需要的列,用 WHERE 子句来筛选行,如下图所示:这样就能找到 David 的预订记录了总的来说,建议大家记住一点:FROM 子句的输出本质上就是一张大表,然后你从里面筛选出需要的信息。听起来可能觉得效率不高,但别担心,数据库底层可聪明了,不会真这么笨 😃.最后提一下:内连接有两种写法。我给大家展示的是我个人偏好的那种,跟其他连接类型的写法更一致。不过你也经常会看到下面这种写法:selectbks.starttimefromcd.bookings bks,cd.members memswheremems.firstname='David'andmems.surname='Farrell'andmems.memid=bks.memid;这种写法和标准答案功能完全一样。如果你觉得这种写法更顺手,用它也完全没问题。十四、查询网球场的预订开始时间题目如何列出 2012-09-21 这一天网球场的预订开始时间?返回开始时间和设施名称的配对列表,按时间排序。预期结果startname2012-09-21 08:00:00Tennis Court 12012-09-21 08:00:00Tennis Court 22012-09-21 09:30:00Tennis Court 12012-09-21 10:00:00Tennis Court 22012-09-21 11:30:00Tennis Court 22012-09-21 12:00:00Tennis Court 12012-09-21 13:30:00Tennis Court 12012-09-21 14:00:00Tennis Court 22012-09-21 15:30:00Tennis Court 12012-09-21 16:00:00Tennis Court 22012-09-21 17:00:00Tennis Court 12012-09-21 18:00:00Tennis Court 2[答案与解析]selectbks.starttimeasstart,facs.nameasnamefromcd.facilities facsinnerjoincd.bookings bksonfacs.facid=bks.facidwherefacs.namein('Tennis Court 2'
http://www.zskr.cn/news/1341265.html

相关文章:

  • 利用Taotoken审计日志功能追踪与分析团队内部的模型使用情况
  • 单日大涨4.52%!华泰柏瑞中韩半导体ETF(513310.SH)上演“高热度”行情,溢价率风险引关注
  • 2026降AI工具怎么选?4款主流工具实测,轻松把AI率压到20%内
  • 从elm-react-native学习React Native最佳实践:10个关键开发技巧
  • 极物科技 正点原子 RK3588 部署 Qwen2-VL Qwen2-VL-2B-Instruct,提供模型和npu驱动0.9.8的kernel
  • (C语言)指针详解与应用
  • 软工作业4
  • CANN/asc-devkit浮点ilogbf函数文档
  • weather_landscape性能优化技巧:提升图像生成速度和资源利用效率
  • 实习准备(26_05_21)
  • # 2026年西安中考复读学校谁家靠谱?教学、案例与管理模式横向测评 - 科技焦点
  • Kubepug快速入门:5分钟学会Kubernetes集群升级安全检查
  • 蓝晒法AI化转型关键突破,仅限前200名领取:含47个已验证蓝晒LUT预设+光照角度黄金比例表
  • 终极指南:如何彻底解决PHP Intelephense常见问题:索引失败、内存溢出、补全失效
  • mob源码深度解析:Go语言实现高效Git协作工具的架构奥秘
  • 3个真实开发场景:Continue如何让你的JetBrains IDE变成AI编程伙伴
  • 得电
  • 在Linux服务器上装了个国产AI代码助手,怎么让团队其他人也能用上
  • 建筑数据驱动预测控制方法应用【附模型】
  • mob高级用法:自定义分支命名和计时器集成
  • 什么是换根DP及第一步操作说明
  • ROCm rocr-libhsakmt分析系列3: aperture概念
  • mpv.net:Windows平台最强大的开源媒体播放器解决方案
  • CodeXGLUE代码摘要生成实战:让AI为你的代码自动写注释
  • 希腊语语音合成“听不出是AI”?20年语音专家私藏的5步Prosody微调法(含ElevenLabs CLI命令集+基频曲线校正图谱)
  • OpenELB与K3s集成:边缘计算场景下的终极负载均衡解决方案指南 [特殊字符]
  • pointer reference作为顶层参数(三)
  • Array作为顶层参数-优化设计(二)
  • pointer reference作为顶层参数(二)
  • CANN/asc-devkit获取向量寄存器长度API