簡體   English   中英

SQL查詢可能返回具有多個具有相同名稱的列的結果集

[英]Possibility of SQL query to return a result set that has more than one column with the same name

從oracle doc http://docs.oracle.com/javase/1.5.0/docs/guide/jdbc/getstart/resultset.html

在某些情況下,SQL查詢可能返回具有多個具有相同名稱的列的結果集。 如果將列名用作getXXX方法的參數,則getXXX將返回第一個匹配的列名的值。

有人知道“某些案件”嗎?

最簡單的情況是

select 1 as A, 2 as A from dual

幾乎與某人可能(不願意)在復雜查詢中創建相同別名的方式相同。

這是一個常見的示例:

SELECT * FROM table1 JOIN table2 ON table1.table1Id = table2.table1Id;

在這里,您知道table1table2有一個名為table1Id的列,並且保證它具有相同的值。 但是,如果您具有自我加入:

SELECT * FROM employee e JOIN employee m ON e.manager_id = m.id;

現在,您遇到了問題,結果集可能沒有太大意義。

想象兩個表定義為

  • 作者 :AuthorId,名字,姓氏,標題...
  • 圖書 :BookId,書名,ISBN,AuthorId ...

使用以下SQL可以列出帶有作者信息的書籍

SELECT *
FROM Books
JOIN Authors USING (AuthorId)

現在,您在ResultSet有兩個不相關的title列,一列是書的標題,一列是作者的(例如學術)標題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM