PostgreSQL表连接

假如有个表(weather)内容如下:

+---------+------------+------------------+
| Id(INT) | Date(DATE) | Temperature(INT) |
+---------+------------+------------------+
|       1 | 2015-01-01 |               10 |
|       2 | 2015-01-02 |               25 |
|       3 | 2015-01-03 |               20 |
|       4 | 2015-01-04 |               30 |
+---------+------------+------------------+

通过SQL语句来查询比昨天温度高的数据记录的Id,如上表,查询后的结果如下:

+----+
| Id |
+----+
|  2 |
|  4 |
+----+

查询语句如下:

select w2.Id
from
	weather as w1
	join
	weather as w2
on
	w1.Date+1 = w2.Date and
	w1.Temperature < w2.Temperature;

这个主要是用了PostgreSQL的表连接,表连接分为:

  • 交叉连接:cross join,加入T1中有m条记录,T2中有n条记录,则交叉连接后有m*n条记录。
  • 条件连接

T1  { [INNER] | [ LEFT | RIGHT | FULL ] | [OUTER] } JOIN T2 ON boolean_expression
T1  { [INNER] | [ LEFT | RIGHT | FULL ] | [OUTER] } JOIN T2 USING(col1, col2, col3, ...)
T1  NATURAL { [INNER] | [ LEFT | RIGHT | FULL ] | [OUTER] } JOIN T2

第一种条件连接在关键字ON后接用户自定义的查询条件,所有字典均保留,第二种条件连接USING后接字段名,将表T1和表T2中col1, col2, col3值相同的字段连接起来,两个表里的这3个字段只保留一份,第三种表连接通过NATURAL自动根据T1和T2中相同字段名进行等值连接。

参考:

Rising Temperature

PostgreSql的JOIN操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值