gpt4 book ai didi

java - SQL 从具有不同列名的两个不同表中选择行

转载 作者:行者123 更新时间:2023-11-30 04:00:31 26 4
gpt4 key购买 nike

我想从两个不同的表(TABLE_A 和 TABLE_B)中选择行。我正在使用 oracle db 和 hibernate。这是我的表格:

这是TABLE_A

+----+--------+---------+-----------+---------------------+---------------------+
| ID | AMOUNT | BALANCE | STATUS | CREATE_DATE | END_DATE |
+----+--------+---------+-----------+---------------------+---------------------+
| 1 | 5 | 5 | FINISHED | 2014-02-27 15:10:20 | 2014-02-27 15:10:20 |
| 2 | 12 | 17 | TIMED_OUT | 2014-02-27 15:10:20 | 2014-02-27 15:10:20 |
| 3 | 21 | 38 | COMMITED | 2014-02-27 15:10:20 | 2014-02-27 15:10:20 |
+----+--------+---------+-----------+---------------------+---------------------+

这是TABLE_B

+----+----------------+---------------+----------------+---------------------+
| ID | PAYMENT_AMOUNT | TOTAL_BALANCE | PAYMENT_STATUS | REQUEST_TIMESTAMP |
+----+----------------+---------------+----------------+---------------------+
| 1 | 3 | 23 | FAILED | 2014-02-27 15:10:20 |
| 2 | 12 | 11 | FULFILLED | 2014-02-27 15:10:20 |
| 3 | 2 | 9 | TIMED_OUT | 2014-02-27 15:10:20 |
+----+----------------+---------------+----------------+---------------------+

我想要做的是,我需要通过单个查询获得如下结果:

+--------+---------+-----------+---------------------+---------------------+
| AMOUNT | BALANCE | STATUS | DATE | END_DATE |
+--------+---------+-----------+---------------------+---------------------+
| 5 | 5 | FINISHED | 2014-02-27 15:10:20 | 2014-02-27 15:10:20 |
| 12 | 17 | TIMED_OUT | 2014-02-27 15:10:20 | 2014-02-27 15:10:20 |
| 21 | 38 | COMMITED | 2014-02-27 15:10:20 | 2014-02-27 15:10:20 |
| 3 | 23 | FAILED | 2014-02-27 15:10:20 | null |
| 12 | 11 | FULFILLED | 2014-02-27 15:10:20 | null |
| 2 | 9 | TIMED_OUT | 2014-02-27 15:10:20 | null |
+--------+---------+-----------+---------------------+---------------------+

结果按日期排序。列说明如下:

AMOUNT = TABLE_A.AMOUNT or TABLE_B.PAYMENT_AMOUNT
BALANCE = TABLE_A.BALANCe or TABLE_B.TOTAL_BALANCE
STATUS = TABLE_A.STATUS or TABLE_B.PAYMENT_STATUS
DATE = TABLE_A.CREATE_DATE or TABLE_B.REQUEST_TIMESTAMP
END_DATE = TABLE_A.END_DATE or null

是否有任何方法可以在 oracle db 中获取此类结果,以及如何将这些结果绑定(bind)到 java 中的 hibernate 对象?

最佳答案

尝试这样的事情

select * from (
select id as amount, ... from t1
union all
select id as amount, ... from t2
) t order by date

关于java - SQL 从具有不同列名的两个不同表中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22112477/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com