【问题标题】:How to make a parallel join on two tables and order result by creation date?如何在两个表上进行并行连接并按创建日期排序结果?
【发布时间】:2017-02-05 08:45:58
【问题描述】:

我是使用 PL/SQL 语言的新手,我正面临这个问题: 假设我有表 A , B 和 C 为: A 1 --- * B A 1 --- * C

我正在使用以下脚本:

Select B.b, C.c
From A,B,C
WHERE A.id = B.a_id
OR A.id = C.a_id 
ORDER BY B.creation_Date,C.creation_Date ;

我得到的是:

|乙 | c |


val_b_1      |  val_c_1
val_b_1      |  val_c_2   
val_b_1      |  val_c_3
val_b_11     |  val_c_11
val_b_12     |  val_c_11

我想得到的是:

|乙 | c |


val_b_1      | 
             |  val_c_1
             |  val_c_2   
             |  val_c_3
val_b_11     | 
             |  val_c_11
val_b_12     |  

按 C 和 B 的创建日期排序。 我该怎么做?

【问题讨论】:

  • 请更清楚您的环境。 PL/SQL 是一种用于编程的 Oracle 专有语言。您的问题似乎是在处理普通的 SQL。如果你真的在 MySQL,请去掉“oracle”和“plsql”标签。
  • 嗨,我正在使用 PL/SQL
  • 但是您的问题中没有 PL/SQL。 (为什么它被标记为mysql?不可能两者兼有。)
  • 在每个表中也发布您的示例数据/

标签: mysql sql oracle plsql plsqldeveloper


【解决方案1】:

我认为应该是这样的:

Select B.b, C.c
From A
LEFT OUTER JOIN B ON B.a_id = A.id
LEFT OUTER JOIN C ON C.a_id = A.id
ORDER BY B.creation_Date,C.creation_Date ;

【讨论】:

  • 嗨@CptMisery 我试过了,但仍然没有得到我想要的
  • 这个怎么样? Select B.b, C.c From A,B,C WHERE (A.id = B.a_id AND C.a_id IS NULL) OR (A.id = C.a_id AND B.a_id IS NULL) ORDER BY B.creation_Date,C.creation_Date ;
猜你喜欢
  • 1970-01-01
  • 2012-07-13
  • 2015-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-22
  • 1970-01-01
相关资源
最近更新 更多