使用Java JDBC,我想收集从SQL Select查询返回的信息。ResultSetMetaData.getColumnName为UNION和非UNION查询返回不同的值
如果我火了下面的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'作为结果,其中as,我预计'col1'。
我也尝试resultSetMetaData.getColumnLabel(1),但它仍然返回'Field1'。
我想'col1'作为结果,我无法通过resultSetMetaData的任何方法获取结果。
对此的任何帮助将是可观的。
您是否尝试过在查询中不使用别名? – codiacTushki