当前位置: 首页 > 知识库问答 >
问题:

DB2中使用列别名的内部联接

索寒
2023-03-14
select column1 as alias from table1 tt
inner join table1 ts
on tt.alias = ts.column1

这个简单的查询没有意义,但它是我试图运行的查询的一个简单版本。这应该是没有错误的运行,对吧?如果我删除别名,它运行没有问题…

提前致谢

共有1个答案

沈枫涟
2023-03-14

不能在onwhere子句中使用列别名。您可以执行以下操作:

select column1 as alias
from table1 tt inner join
     table1 ts
     on tt.column1 = ts.column1;

您还可以执行以下操作:

select alias
from (select column1 as alias
      from table1
     ) tt inner join
     table1 ts
     on tt.alias = ts.column1;

在编译阶段,查询由子句求值,首先使用from子句,然后使用whereselect。换句话说,编译器在计算from时并不“知道”select中的内容。

 类似资料:
  • 问题内容: 我正在使用两个表从数据库中查询,并收到问题标题中描述的错误。在某些情况下,我需要查询的字段在表A中,而其他字段在表B中。我动态创建要搜索的列(可以在表A或表B中),而我的代码中的WHERE子句是导致错误。 是否有一种动态的方法来解决此问题,例如,如果列位于表B中,然后使用表B进行搜索,或者INNER JOIN是否应该解决此问题(当前不是) 表A 栏位:id 表B 栏位:id SQL代码

  • 我试图在一列内连接两个表。从数据库方面来看,没有映射,因为这是我不想讨论的事情。 我想使用内部联接执行HQL查询并检索角色对象/结果。 这是到目前为止我的hql 一场createQuery(“从角色作为角色内部加入参与作为角色上的参与。id=invention.roleid,其中invention.id=X”)。list(); 我看到在HQL上不可用。如何明确地告诉Hibernate仅加入此列。

  • 问题内容: 我想在我的域/实体对象中执行以下操作: 这样我就可以在服务层中执行以下操作: 但是,我在HQL中的语法不正确-大约十分钟后,我决定放弃正式文档并在此处询问…?我的usercat表是这样加入的: 的SQL是这样,它在我的数据库命令提示符下工作正常: 仅仅是我还是休眠文档比较痛苦,您是否发现自己经常想知道,编写普通的jdbc准备好的语句来填充pojos / domain objects /

  • 我想从两个select查询的内部联接中选择两列。我编写了一个连接三个表的查询,从结果中我只希望得到两列。但是我的查询显示错误。我使用的是oracle sql Developer。 我只想要名字和姓氏,但我得到了这样的错误:

  • 所以我有一个相关的子查询,我读到这不是最有效的方法。因此,我想将此查询转换为内部联接查询。 我试过这样的方法: 在对数据库“db”执行SQL查询时导致 我在这里的所有搜索结果都产生了大致相同的查询(与我尝试的类似)

  • 问题内容: 我有三张桌子。 地点 学校 school_locations 此处的表位置包含应用程序的所有位置。学校的位置由ID调用。 当我使用查询 它显示“ coun”类型的名称 但我想显示location.name,其中只有school_locations的类型为“ coun” 我尝试了以下查询,但似乎都没有用 和 是否可以在查询中使用多个内部联接,还是有另一种方法? 问题答案: 该子句必须在语