String sql = "select TOP 7 news_id,news_title,news_addtime,news_url from web_news_info a"
+ "LEFT JOIN web_news_small_type b "
+ "ON a.small_type_id = b.small_type_id "
+ "LEFT JOIN web_news_big_type c ON a.big_type_id = c.big_type_id "
+ "WHERE c.big_type_name = '新闻公告' and b.small_type_name <> '新闻' and news_view = 'true' ORDER BY is_top DESC, news_addtime DESC";

今天在写一段sql语句时遇到的问题,上面的代码放在数据库中查询,没有问题,

但是运行程序的时候突然报了错,说什么多个small_type_id字段重复,我不是写了别名a,b,c吗。

同事找了几分钟把sql打印出来终于找到问题了,a后面少了一个空格,同事提醒我说格式一定要放好,空格要么在每一行前面加,要么在每一行后面加,我之前都没注意到这个,尴尬。

String sql = "select TOP 7 news_id,news_title,news_addtime,news_url from web_news_info a "
+ "LEFT JOIN web_news_small_type b "
+ "ON a.small_type_id = b.small_type_id "
+ "LEFT JOIN web_news_big_type c ON a.big_type_id = c.big_type_id "
+ "WHERE c.big_type_name = '新闻公告' and b.small_type_name <> '新闻' and news_view = 'true' ORDER BY is_top DESC, news_addtime DESC";

原因:

1.未给不同的数据表起别名。

2.sql 语句错误,可能少了空格,建议将sql语句打印出来检查。

sql语句,无法绑定由多个部分组成的标识符 "xxx"的更多相关文章

  1. 获取oracle sql语句中绑定变量值的方法

    在诊断 sql的性能问题时,我们有时候须要获取其绑定变量的实际值,然后将此实际值带入到sql语句其中,用原来的sql构成select语句(带where条件),实际的运行一下,看一下选择性怎样. 本文就 ...

  2. 拼接sql语句参数绑定

    /** * 事务封装方法 * @access public * @param array $sqls 要执行的sql数组或语句 * @return boolean */ public function ...

  3. 控制台打印Hibernate的SQL语句显示绑定参数值

    问题? 使用Hibernate提供的show_sql内置属性true只能输出类似于下面的SQL语句:Hibernate:   insert into user(name,password) value ...

  4. ORACLE 查看有多个执行计划的SQL语句

    在SQL优化过程,有时候需要查看哪些SQL具有多个执行计划(Multiple Executions Plans for the same SQL statement),因为同一个SQL有多个执行计划一 ...

  5. Oracle基础 动态SQL语句

    一.静态SQL和动态SQL的概念. 1.静态SQL 静态SQL是我们常用的使用SQL语句的方式,就是编写PL/SQL时,SQL语句已经编写好了.因为静态SQL是在编写程序时就确定了,我们只能使用SQL ...

  6. 关于在Java代码中写Sql语句需要注意的问题

    最近做程序,时不时需要自己去手动将sql语句直接写入到Java代码中,写入sql语句时,需要注意几个小问题. 先看我之前写的几句简单的sql语句,自以为没有问题,但是编译直接报错. String st ...

  7. MySQL中间件之ProxySQL(8):SQL语句的重写规则

    返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.为什么要重写SQL语句 ProxySQL在收到前端发送来的SQL语 ...

  8. ProxySQL(8):SQL语句的重写规则

    文章转载自: https://www.cnblogs.com/f-ck-need-u/p/9309760.html 为什么要重写SQL语句 ProxySQL在收到前端发送来的SQL语句后,可以根据已定 ...

  9. ASP.NET实现列表页连接查询 拼接sql语句 绑定grivdView

    ASP.NET实现列表页连接查询 拼接sql语句 如图效果: 基本需求:1.当页面第一次加载的时候默认查询一个月时间(或者说是登陆者所属权限的所有数据)的数据绑定到gridView 2.添加查询条件时 ...

随机推荐

  1. 算法复习——无源汇可行流(zoj2314)

    题目: The terrorist group leaded by a well known international terrorist Ben Bladen is buliding a nucl ...

  2. Linux 下运行 C++ 程序出现 “段错误(核心已转储)”

    Linux下写C++程序出现“段错误(核心已转储)”的问题: 段错误一般就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它 ...

  3. JSONObject与JSONArray的使用(jackson)

    1.创建一个JSONObject对象 package com.resource.controller.web; import java.util.ArrayList; import java.util ...

  4. POJ2167 Irrelevant Elements

    Time Limit: 5000MS   Memory Limit: 65536KB   64bit IO Format: %lld & %llu Description Young cryp ...

  5. ftrace简介

    ftrace 的作用是帮助开发人员了解 Linux 内核的运行时行为,以便进行故障调试或性能分析. 最早 ftrace 是一个 function tracer,仅能够记录内核的函数调用流程.如今 ft ...

  6. gdb 远程调试android进程

    原文:http://blog.csdn.net/xinfuqizao/article/details/7955346?utm_source=tuicool 什么是gdb 它是gnu组织开发的一个强大的 ...

  7. Day 3 网络基础

    网络基础 一.什么是互联网协议及为何要有互联网协议 ? 互联网协议:指的就是一系列统一的标准,这些标准称之为互联网协议.互联网的本质就是一系列的协议,总称为‘互联网协议’(Internet Proto ...

  8. ORACLE RMAN增量备份经典理解

    http://blog.itpub.net/26118480/viewspace-1793548/

  9. android widgets控件

    1.TextView 类似,C#里的lable,显示一段文本 <TextView android:id="@+id/textView2" android:layout_wid ...

  10. Spring的IoC容器概述

    以下内容引用自http://wiki.jikexueyuan.com/project/spring/ioc-containers.html: IoC容器 Spring容器是Spring框架的核心.容器 ...