【发布时间】:2020-11-29 09:20:35
【问题描述】:
我有 3 个表,我想根据 Table_A 中的条件加入 Table_A,如下所示:
- 当Table_A的DATA_1列中的值为“aaa”时,我想将它与Table1中的数据连接起来,如果是“bbb”,我想将其与表 2 中的数据连接起来。
Table_A
ID DATA_1 DATA2
------------------
1x aaa qwe
2q bbb axz
3w ccc qws
4b aaa dal
5a ddd qws
Table_1
ID DATA_1 DATA_2 DATA_Y
--------------------------
1x aaa qwe wer
Table_2
ID DATA_1 DATA_X DATA_Y
---------------------------
1x bbb qwe wez
and so on..
到目前为止我所拥有的:
SELECT h.id,
h.data_1,
h.data_2,
a.data_x,
a.data_y
FROM table_a h,
table_1 a
WHERE h.order_id = a.order_id
UNION
SELECT h.id,
h.data_1,
h.data_2,
b.data_x,
b.data_y
FROM table_a h,
table_2 b
WHERE h.order_id = b.order_id
有没有一种方法可以将所有内容组合到一个查询中,而不是进行联合?
【问题讨论】:
-
"combine" 没有特别的含义。这篇文章没有明确说明您希望查询做什么。 PS minimal reproducible example PS 有条件地加入不同的表是一个常见问题。 (我们不这样做,我们连接表格以获取每个可能的行组合,使用 on 和/或保留我们想要的行的位置,然后选择这些行的所需功能。) PS 请通过编辑澄清,而不是厘米。
标签: oracle join oracle-sqldeveloper union