2016-09-27 56 views
1

我是新来的使用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 ; 

我得到的是:

| b | 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 

我想要得到的是:

| b | c |


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

下令双方ç& B. 我怎么能这样做创建日期?

+0

请有关环境的更加清晰。 PL/SQL是用于编程的Oracle专有语言。你的问题似乎在处理普通的SQL。如果你真的在MySQL中,请删除“oracle”和“plsql”标记 –

+0

嗨,我正在使用PL/SQL –

+1

但是在你的问题中没有PL/SQL(为什么它被标记为'mysql' ? –

回答

0

我想应该是这样的:

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 ; 
+0

嗨@CptMisery我试过了,但还是没有得到我想要的 –

+0

这个怎么样?选择Bb,Cc 从A,B, (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; – CptMisery

相关问题