Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQL从两个具有不同列名的不同表中选择行_Java_Sql_Oracle_Hibernate - Fatal编程技术网

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

Java SQL从两个具有不同列名的不同表中选择行,java,sql,oracle,hibernate,Java,Sql,Oracle,Hibernate,我想从两个不同的表(表A和表B)中选择行。我正在使用oracledb和hibernate。这是我的桌子: 这是表A +----+--------+---------+-----------+---------------------+---------------------+ | ID | AMOUNT | BALANCE | STATUS | CREATE_DATE | END_DATE | +----+--------+---------+---

我想从两个不同的表(表A和表B)中选择行。我正在使用oracledb和hibernate。这是我的桌子:

这是
表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 |
+----+--------+---------+-----------+---------------------+---------------------+
这是
表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中获得这些结果,有没有办法将这些结果绑定到java中的hibernate对象?

试试这样的方法

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