`

子查询列名的问题

阅读更多

现有学生表、班级表,学生表关联到班级表,结构如下图:
  
执行查询:
select * from
(
 select rownum as r,t.* FROM
  (
   SELECT s.id, c.name FROM stuinfo s,classes c WHERE s.classesid=c.id
  )
t where rownum<=6) where r>4;
没问题,得到结果如下:

更改sql语句如下:
select * from
(
 select rownum as r,t.* FROM
  (
   SELECT s.id,s.name ,c.id ,c.name FROM stuinfo s,classes c WHERE s.classesid=c.id
  )
t where rownum<=6) where r>4;
执行结果报错,如下图:


分析结果由于学生表中有id,name,班级表中有id,name,联合查询以后列名都是id,name故外边的查询区分不开两个表的id、name,故各自给id、name取别名代替原有的列名,语句代码如下:
select * from
(
 select rownum as r,t.* FROM
  (
   SELECT s.id AS id1 ,s.name AS name1,c.id AS id2,c.name AS name2 FROM stuinfo s,classes c WHERE s.classesid=c.id
  )
t where rownum<=6) where r>4;
执行后问题解决,效果如下图:

 


分享到:
评论

相关推荐

    select时没有指定确切的列名

    在SQL Server中,“select时没有指定确切的列名”的问题通常是由于在查询语句中使用了通配符“*”或者在子查询、视图、函数等返回多列的情况下未明确指定每一列的名字而导致的。这种错误往往发生在复杂的查询结构中...

    Oracle初级(子查询).doc

    子查询有多种类型,包括单列子查询、单行子查询、多行子查询: - 单列子查询:返回一列数据,如`(SELECT AVG(sal) FROM emp)`。 - 单行子查询:返回一行记录,包含多列信息,如`(SELECT sal FROM emp WHERE empno =...

    基于实体属性/表列名的前后端自定义通用条件查询

    例如,除了单个属性的比较,还可以有逻辑运算符(AND、OR),甚至子查询。在构建SQL时,我们需要根据条件的结构,正确地组合不同的WHERE子句。如果条件是一个嵌套的JSON对象,可能需要递归处理以构建嵌套的SQL子查询...

    test_lesson09 子查询.pdf

    以上就是针对这些测试题目所涉及的MySQL子查询知识,包括了单行子查询、多行子查询、嵌套子查询、关联子查询以及使用聚合函数和条件运算符的子查询应用。这些技巧对于理解和处理复杂的数据查询至关重要。

    SQL 必知必会 11 - 使用子查询1

    本节主要介绍了如何使用子查询进行数据过滤和计算字段,以解决特定的问题。 首先,我们来看如何使用子查询进行过滤。在给定的例子中,目标是找出购买了物品RGAN01的所有顾客的信息。这一过程可以分为三个步骤: 1....

    Sybase SQL Server中子查询的设计和使用.pdf

    4. subquery_select_list 一般只能包括一个表达式或列名,只有由 exists 引导的子查询例外,它的 select 列表通常使用星号 *。 5. 子查询中不能使用 text 和 image 数据类型。 6. 可更新游标的 select 语句允许使用...

    SQl查询数据库表名、表的列名

    2. **条件`WHERE id = (SELECT object_id('表名'))`**: 使用子查询来获取指定表的`object_id`,并通过该`id`来筛选出表的所有列。 ### 三、SQL Server系统表详解 以下是一些重要的系统表及其用途: - **`...

    Task03:复杂查询方法 - 视图、子查询、函数等.pdf

    本任务(Task03)重点讲解了视图、子查询、函数等核心概念,下面将详细阐述这些知识点。 3.1 视图(View) 视图是从一个或多个表中创建的虚拟表,它不存储实际数据,而是根据查询定义来动态生成结果。视图可以简化...

    mysql连接查询、联合查询、子查询原理与用法实例详解

    MySQL中的查询操作是数据库操作的核心,它包括连接查询、联合查询和子查询,这些方法都是在处理多表数据时非常重要的技术。 连接查询是将两个或更多表的数据结合在一起进行查询,主要有四种类型:内连接(INNER ...

    oracle基本查询操作子查询用法实例分析

    Oracle数据库中的子查询是SQL查询语句的一种高级形式,它在一个查询中嵌套另一个查询,用于获取或处理数据。子查询可以在SELECT、FROM和WHERE子句中使用,以支持复杂的数据检索需求。以下是对子查询及其相关知识点的...

    数据库链接查询、子查询等数据查询的方法 课件

    本课件主要关注链接查询和子查询,这两种方法是数据库查询的基石,它们可以帮助我们处理复杂的查询需求。以下是对这些查询方法的详细解释。 首先,查询的基本结构包括`SELECT`、`FROM`、`WHERE`、`ORDER BY`和`...

    ORACLE_多表连接与子查询2[定义].pdf

    在Oracle数据库系统中,多表连接与子查询是SQL查询中的关键概念,它们允许用户从多个相关表中获取复杂的数据信息。以下是对这些概念的详细解释: 1. **多表连接**: - **等值连接(Equijoin)**:这是最基本的连接...

    数据库系统概论:第4章 关系数据库标准语言——SQL语言5.ppt

    子查询的执行过程:先执行子查询,将子查询的结果作为父查询的条件,然后执行父查询。例如:SELECT sname FROM student WHERE sno IN (SELECT sno FROM sc WHERE cno='c2')。 不相关子查询的特点是:子查询能够独立...

    《数据库原理》实验7(嵌套查询).doc

    在嵌套查询中,有两种类型的子查询:相关子查询和不相关子查询。相关子查询的查询条件依赖于外层父查询的某个属性值,而不相关子查询的查询条件不依赖于外层父查询的属性值。 知识点4:使用嵌套查询实现复杂查询 ...

    过滤、排序、分组、去重、改名、计算列、关联、子查询、集合计算

    在IT领域,尤其是在数据库管理和数据处理中,"过滤、排序、分组、去重、改名、计算列、关联、子查询、集合计算"是一系列非常基础且重要的操作。这些概念在C#编程中同样有着广泛的应用,尤其是在数据处理和数据库交互...

    取得数据窗口中的所有列名及其text的文字

    在进行数据窗口的高级定制时,如创建组合条件查询或自定义界面布局,获取所有列名及其文本描述变得尤为关键。 Describe函数是PowerBuilder提供的一个强大的工具,用于获取数据窗口的各种属性信息。它能返回数据窗口...

    A Guide to SQL, Eighth Edition.ppt

    子查询可以是相关子查询,即子查询中的表与外部查询中的表有关联,如图5-7所示,其中ORDERS表在外部查询的FROM子句中,也在子查询中使用。 5. **子查询**: 子查询可以在一个查询内部嵌套,用于执行更复杂的查询...

    数据库第三章第三讲PPT

    由EXISTS引出的子查询,其目标列表达式通常都用* ,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义。 2) NOT EXISTS谓词 若内层查询结果非空,则外层的WHERE子句返回假值 若内层查询结果为空,则外层的...

Global site tag (gtag.js) - Google Analytics