从PostgreSQL中的另一个表中获取列值

时间:2013-07-17 04:59:32

标签: postgresql join

我有两张桌子:

用户和订单

订单属于用户,订单表中有一个名为user_id的列。因此,例如,Order表中的一行看起来像:

id: 4
description: "pair of shoes"
price: 18.40
user_id: 1

用户行看起来像:

id: 1
email: "myemail@gmail.com"
name: "John"

如果我想获得所有订单,我该怎么办?但不是获取用户ID,而是收到电子邮件?

1 个答案:

答案 0 :(得分:3)

一个简单的JOIN可以解决问题

SELECT o.id, 
       o.description, 
       o.price,
       u.email
  FROM "order" o JOIN "user" u
    ON o.user_id = u.id

示例输出:

| ID |   DESCRIPTION | PRICE |             EMAIL |
--------------------------------------------------
|  4 | pair of shoes |  18.4 | myemail@gmail.com |

这是 SQLFiddle 演示

进一步阅读A Visual Explanation of SQL Joins