繁体   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