【发布时间】:2014-05-15 13:12:42
【问题描述】:
使用 Java JDBC,我想收集 SQL Select 查询返回的信息。
如果我在 SQL 查询下触发:
SELECT col1 AS 'Field1', col2 AS 'Field2' FROM Table;
然后,使用 resultSetMetaData.getColumnName(1),我得到 'col1' 作为结果,这是预期的结果。
现在,问题是,当我加入 2 个 SQL 表时(由于 MySQL 不提供完全外连接,因此我触发了以下查询)
SELECT Table1.Col1 AS 'Field1', Table1.Col3 AS 'Field2',
Table2.Col5 AS 'Field3',Table2.Col4 AS 'Field4' FROM Table1
LEFT JOIN Table2 ON Table1.id = Table2.id
UNION
SELECT Table1.Col1 AS 'Field1', Table1.Col3 AS 'Field2',
Table2.Col5 AS 'Field3',Table2.Col4 AS 'Field4' FROM Table1
RIGHT JOIN Table2 ON Table1.id = Table2.id;
现在,使用 resultSetMetaData.getColumnName(1),我得到 'Field1' 作为结果,而我预期的是 'col1'。
我也尝试了 resultSetMetaData.getColumnLabel(1),但它仍然返回 'Field1'。
我想要 'col1' 作为结果,我无法通过 resultSetMetaData 的任何方法获得。
对此的任何帮助将不胜感激。
【问题讨论】:
-
您是否尝试过在查询中不使用别名?