使用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