SQL语句报错,无法绑定由多个部分组成的标识符解决

无法绑定由多个部分组成的标识符, 表示在查询的时候使用了别名,并且查询的多个表中存在相同的字段,如果在使用该字段时不明确该字段的来源就会报这个错误。

举例:

  我们有两张表,B1,B2,他们有一个共同的字段id

  select id from B1 c inner join  B2 d on  c.id=d.id;

  查询时就会报无法绑定由多个部分组成的标识符id

  必须这样写

  select c.id from B1 c inner join  B2 d on  c.id=d.id;

  这样才知道c.id 是哪个值。

时间: 2024-08-29 19:39:14

SQL语句报错,无法绑定由多个部分组成的标识符解决的相关文章

SQL语句报错:Incorrect string value: '\xE9\x98\xBF\xE6\x96\xAF...'

很明显是编码的问题.检查了一下$conn->query("set names utf8");已经加在代码里了.那莫非是数据库编码不是utf8? 看了一下 还真不是 于是右键要修改的表,点击alter table,做了如下修改. 不报任何期望的重启了服务器又试了一次 果然还是那个错.... 这种场面我见多了,早就看淡了.所以接着排查问题. 发现在SQL语句复制到数据库执行也是这个亚子,中文用命令添加完全不行,但是手动添加却是正常的: 听网上的把编码改成utf8mb4依然不行 然后!

SQL语句报错:You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near

报错如图: 最开始其实我的列名tname和tsubject分别叫name和subject,后来看到网上有说这个报错可能是数据库建表的时候使用了mysql的关键词,我就只把name改了.后来还是这个问题,百思不得其解. 后来同学告诉我说老师帮她检查SQL语句的问题时都是把php程序里的SQL语句先复制到mysql里面去执行看是不是数据库的问题的. 太tm机智了,我怎么没想到呢,姜还是老的辣.复制过去一看,怎么subject也是关键词啊! 很有信心的改掉以后等待正确结果,但是竟然还是这个错... 没

sql无效字符 执行sql语句报错解决方案

以为是sql中参数赋值有问题,但是将sql语句直接copy到PLSQL中执行,却没问题,纠结了好久,原来是 insert语句多了:唉,坑爹 http://www.jb51.net/article/32081.htm 原文地址:https://www.cnblogs.com/feifeicui/p/8907851.html

SQL Server中事务transaction如果没写在try catch中,就算中间语句报错还是会提交

假如我们数据库中有两张表Person和Book Person表: CREATE TABLE [dbo].[Person]( [ID] [int] IDENTITY(1,1) NOT NULL, [Code] [nvarchar](50) NULL, [Name] [nvarchar](50) NULL, [CreateTime] [datetime] NULL, [UpdateTime] [datetime] NULL, CONSTRAINT [PK_Person] PRIMARY KEY CL

sql执行报错--This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

问题: 不支持使用 LIMIT 子句的 IN/ALL/ANY/SOME 子查询,即是支持非 IN/ALL/ANY/SOME 子查询的 LIMIT 子查询. 解决: 将语句:select * from table where id in (select id from table limit 0,10) 变更为:select * from table where id in (select t.id from (select * from table limit 0,10)as t) sql执行报

oracle: sql语句报ora-01461/ora-00911错误

ora-00911:sql语句中可能含有特殊字符,或者sql语句中不能用";"分号结尾. sql语句报ora-01461(仅可以为插入 LONG 列的 LONG 值赋值"解决办法 ):如果你的某个字段的字符太长,请用定义语句俩完成. 比如:有个字段:ticket_info,这个字段是nclob型,存入的字段太长,但是sql如果太长,执行不了,会报错(到plsql工具了执行没问题),这时需要将这个 字段的数据 用sql定义一下. DECLARE REALLYBIGTEXTSTR

mysql执行SQL语句时报错:[Err] 3 - Error writing file '/tmp/MYP0G1B8' (Errcode: 28 - No space left on device)

问题描述: 今天一同事在mysql中执行SQL语句的时候,报了/tmp空间不足的问题,报错如下: [SQL] SELECT f.prov as 字段1, MAX( CASE f.flag_name WHEN '字段1' THEN f.num ELSE 0 END ) AS '字段1', MAX( CASE f.flag_name WHEN '店员量' THEN f.num ELSE 0 END ) AS '字段1', MAX( CASE f.flag_name WHEN '字段1' THEN f

使用Oracle SQL Developer报错:Unable to find a Java Virtual Machine

1.环境 win7 x64,oracle 11g r2,jdk6 x64 2.问题 第一次启动Oracle SQL Developer的时候会让我们填写java.exe的路径,我在jdk安装目录下的bin中找到了java.exe,但是填写以后报如下错误: 3.原因 oracle 11g中安装的Oracle SQL Developer是32位的,而我们现在给他指定的java.exe却是64位的,所以会出现这种错误. 4.解决方法 1)从网上下载Oracle SQL Developer x64,然后

查询数据库语句报错“数据类型 text 和 varchar 在 equal to 运算符中不兼容。"

问题:查询数据库语句报错"数据类型 text 和 varchar 在 equal to 运算符中不兼容." 解决: select * from 表名称 where cast(查询的字段名称 as varchar(max)) ='查询的值'