【问题标题】:How to have multiple rows reference the same field of a single row?如何让多行引用单行的相同字段?
【发布时间】:2015-06-10 11:33:19
【问题描述】:

我是 PostgreSQL 新手,在表之间建立关系。 我有一个工作表和一个项目表。作业表有一个 shipping_date。我希望 items 表有一个反映 jobs 表的 shipping_date 的列:

jobs table:

job_id | shipping_date
10001  | 29-06-2014
10002  | 29-06-2014
10003  | 30-06-2014


items table:

item_id | job_id      | shipping_date
1234    | fkey(10001) | need this to be 29-06-2014 
1235    | 10001       | need this to be 29-06-2014

发货日期不能是 fkey,因为它不是唯一的,但我们需要它来引用作业表中的相关 shipping_date。

每个作业可以有几个关联的项目。每个项目只能与一项工作相关联。

谢谢!

【问题讨论】:

    标签: relational-database relational


    【解决方案1】:

    您不希望数据库中存在冗余。您可以创建一个 view 来连接这两个表并向您展示您的需求。 select 可能是:

    SELECT a.item_id, a.job_id, b.shipping_date
      FROM items a INNER JOIN jobs b ON a.job_id = b.job_id
    

    【讨论】:

      【解决方案2】:

      我发现我只需要做一个连接子句:

      SELECT shipping_date FROM items INNER JOIN jobs ON (job_items.job_id = jobs.job_id);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-08
        • 1970-01-01
        • 1970-01-01
        • 2011-04-09
        • 2018-12-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多