pgsql 连接mysql表_PostgreSQL表之间连接详解

到目前为止,我们的查询一次只访问了一个表。查询可以一次访问多个表,或者用某种方式访问一个表,而同时处理该表的多个行。一个同时访问同一个或者不同表的多个行的查询叫连接查询。举例来说,比如你想列出所有天气记录以及这些记录相关的城市。要实现这个目标,我们需要拿 weather 表每行的 city 字段和 cities 表所有行的 name 字段进行比较,并选取那些这些数值相匹配的行。

【注意】这里只是一个概念上的模型。连接通常以比实际比较每个可能的配对行更高效的方式执行,但这些是用户看不到的。

这个任务可以用下面的查询来实现:

SELECT *

FROM weather, cities

WHERE city = name;

city | temp_lo | temp_hi | prcp | date | name | location

---------------+---------+---------+------+------------+---------------+-----------

San Francisco | 46 | 50 | 0.25 | 1994-11-27 | San Francisco | (-194,53)

San Francisco | 43 | 57 | 0 | 1994-11-29 | San Francisco | (-194,53)

(2 rows)

观察结果集的两个方面:

没有城市 Hayward 的结果行。这是因为在 cities 表里面没有与 Hayward 匹配的行,所以连接忽略了 weather 表里的不匹配行。我们稍后将看到如何修补这个问题。

有两个字段包含城市名。这是正确的,因为 weather 和 citie

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值