首页 > 其他分享 >子查询关联条件字段没有指定表的别名导致的查询结果不正确的问题

子查询关联条件字段没有指定表的别名导致的查询结果不正确的问题

时间:2024-12-16 11:11:26浏览次数:3  
标签:别名 关联 SQL supplier 查询 id 等级

首先介绍一下表结构和背景;

 有两个数据库表,供应商XX任务主表和供应商等级变更记录表; 等级表里面有多个任务,两张表是通过同名称的字段,supplier_id关联;

 

 

①SQL是XX任务表关联供应商等级表,结果是A+,实际是D等级,

②SQL是查询的结果是A+等级;

③SQL是比②SQL多了一个条件带了supplier_id的SQL 结果是D等级;

 

分析①SQL结果出现的问题,关联条件指定有问题,          AND b.supplier_id = supplier_id,这个子查询关联supplier_id的是关联到自己了,相当于每个结果的等级都是关联的 “等级表的第一条数据”,

解决方案:就是加上关联的supplier_id的表别名称

 

标签:别名,关联,SQL,supplier,查询,id,等级
From: https://www.cnblogs.com/liran123/p/18609570

相关文章

  • MyBatis详解---关联映射
    目录引入一、创建表结构1.学生表2.老师表二、查询学生对应的老师1.第一种形式连表查询 ①:设置实体类②:查询语句2.第二种形式分步查询(分段查询--支持懒加载)①:设置实体类②:查询语句三、查询教师的学生(一对多)1.第一种形式:按照结果嵌套处理 ①.设置实体类②......
  • MySQL 的查询优化器如何选择执行计划?
    MySQL的查询优化器负责决定如何执行SQL查询,它会根据多个因素选择最优的执行计划。查询优化器的目标是选择一个成本最低、性能最优的执行计划,以便高效地处理查询。执行计划的选择是基于MySQL内部的统计信息和执行策略,下面是查询优化器选择执行计划的关键步骤和考虑因素:1.分......
  • 如何使用 MySQL 的 EXPLAIN 语句进行查询分析?
    如何使用MySQL的EXPLAIN语句进行查询分析?EXPLAIN是MySQL提供的分析SQL查询执行计划的工具,用于了解查询语句的执行过程,帮助优化查询性能。1.EXPLAIN的使用方法基本语法EXPLAINSELECT*FROMtable_nameWHEREconditions;或者:EXPLAINFORMAT=JSONSELECT*FRO......
  • Hive高级查询
    Hive高级查询更多大数据资源持续更新中。。。一、UDTF之explode函数1、explode语法功能对于UDTF表生成函数,很多人难以理解什么叫做输入一行,输出多行。为什么叫做表生成?能够产生表吗?下面我们就来学习Hive当做内置的一个非常著名的UDTF函数,名字叫做explode函数,中文戏称之......
  • 请详细描述 MySQL 的 B+ 树中查询数据的全过程
    MySQL的B+树中查询数据的全过程在MySQL中,B+树被广泛用于实现索引,特别是InnoDB存储引擎中的聚簇索引。B+树是一种平衡树,具有良好的查询性能。本文将详细描述在B+树中进行查询操作的全过程。1.B+树的结构B+树的基本结构由以下几个部分组成:根节点:B+树的顶部节点......
  • 事件控制块的清空与状态查询
    目录事件控制块的清空事件控制块的状态查询事件控制块的清空        将事件控制块中的所有任务从它的等待队列中移除,再将这些任务插入就绪队列。事件控制块的状态查询        仅需知道事件状态块中有多少个任务需要等待。tEvent.c#include"tinyOS......
  • 数据库查询性能优化-正确使用索引避免全表扫描
    优化查询最重要的就是,尽量使语句符合查询优化器的规则避免全表扫描而使用索引查询。具体要注意的:1.应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描。如:selectidfromtwherenumisnull可以在num上设置默认值0,确保表中num列没......
  • 【算法】【字符串】关联子串
    1 题目给定两个字符串str1和str2,如果字符串str1中的字符,经过排列组合后的字符串中,只要有一个字符串是str2的子串,则认为str1是str2的关联子串。若str1是str2的关联子串,请返回子串在str2的起始位置;若不是关联子串,则返回-1。输入描述:输入两个字符串,分别为题目中描述的str1、str......
  • MySQL Limit 分页查询优化
    前言在各类系统的表格类信息展示的功能中,经常会用到“翻页”这个操作,在页面上每次只展示有限的数据,需要看其他数据的时候则像翻书一样翻到后面的“页”。在MySQL支持的SQL语法中对此有特殊的支持,开发人员在实现这类功能的时候很方便:select*fromxxxlimitM,Nselect*f......
  • 统计所有地区的人员人数并排序,优化查询速度
    #背景:person_info表存放用户信息中有1千万数据,ID为主键,addr存放省份ID;addr_table表存放省份数据,有34条数据,ID为主键;#统计所有地区的人员人数selectad.name,count(pio.id)aspidfromaddr_tableadinnerjoinperson_infopioonad.id=pio.addrgroupbyad.nameor......