【问题标题】:Oracle: select from T1 inner join T2 where date in T3 but no key related with T3Oracle:从 T1 内部连接 ​​T2 中选择,其中 T3 中的日期,但没有与 T3 相关的键
【发布时间】:2016-07-20 17:23:47
【问题描述】:

我有 3 张桌子,

T1 has columns: date, id
T2 has columns: selected_id
T3 has columns: start_date, end_date

旨在创建 T4 表。

我想在 T1.id = T2.selected_id 上从 T1 选择加入 T2, 其中 T1.date 在 T3.start_date 和 T3.end_date 之间。

所以我写如下:

create table T4 as
(select T1.*, T2.* from T1
inner join T2 on T1.id = T2.selected_id
where T1.date between T3.start_date and T3.end_date);

但是,T3 没有与 T1 相关的外键加入,所以它不起作用。 有解决问题的建议吗?

【问题讨论】:

  • T3 表中的行如何影响其他行? T3如何与T1或T2相连?还是 T3 表总是只有 1 行?
  • 谢谢,T3只有1行,T3与T1和T2没有联系。

标签: sql oracle join


【解决方案1】:

你说 T3 只有 1 行。这很奇怪。只是好奇你能说出你创建它的目的吗?

对于您的问题:您的查询应如下所示:

create table T4 as
  (
    select T1.*, T2.* 
    from 
      T1 inner join T2 
        on T1.id = T2.selected_id 
      join T3
        on T1.date between T3.start_date and T3.end_date);

【讨论】:

  • 好的,谢谢。因为客户想要设置选定的日期期间,所以我创建了一个只有 1 行的表格供他填写 start_date 和 end_date。
  • 我已经将它写入我的数据库,它确实有效,非常感谢:)
  • @QSY 如果对您有用,请选择 Evgeniy 的答案,谢谢!
猜你喜欢
  • 2011-12-03
  • 2020-01-09
  • 1970-01-01
  • 2015-07-15
  • 2015-03-23
  • 1970-01-01
  • 2016-12-19
  • 2015-11-06
  • 2017-05-01
相关资源
最近更新 更多