MSSQLSERVER数据库- LEFT JOIN后面跟着WHERE竟变成内联 解决方法

  在LEFT JOIN后面跟着WHERE竟变成内联。百度后看到这个解决方法。

  记录如下:

 select sre.*, co.description
 from subscribedratingelement sre left outer join custom_options co on sre.locationInCdr=co.optionvalue
 where co.optionname=‘LocationInCdr‘;
 select sre.*, co.description
 from subscribedratingelement sre left outer join custom_options co
 on (sre.locationInCdr=co.optionvalue and co.optionname=‘LocationInCdr‘);

第一条SQL是一个左外连接,然后进行where过滤。仔细分析这个SQL会发现,最后的结果不是所期望的,custom_options表中不符合条件的记录本来是以null表示的,由于where中的过滤,导致查询出来的记录为null的部分都没有查询出来。这个左外连接就和内连接没有任何区别了。

第二个SQL语句就可以满足要求。做连接的时候就过滤了右边的一些记录,这样就算右表不符合条件的左表记录也可以查询出来。

时间: 2024-08-04 18:31:27

MSSQLSERVER数据库- LEFT JOIN后面跟着WHERE竟变成内联 解决方法的相关文章

关于oracle数据库启动报ORA-01122,ORA-01110,ORA-01203错误的解决方法

ORACLE 数据库空间裸设备出问题了,启动oracle失败,解决方法问题现象:     启动ORACLE的时候报如下的错误:        Database mounted.      ORA-01122: database file 6 failed verification check      ORA-01110: data file 6: '/dev/raw/rlv_cbs_user_dat'      ORA-01203: wrong incarnation of this file

mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法

补充:正常情况下,建议数据库备份最好用工具进行备份,通过拷贝数据库表进行数据迁移,不同的环境会出现各种不同的意外问题. 背景:今天在整理一个网站的时候,操作系统由于系统自动更新导致一直出现系统蓝屏死机,唉,悲剧了,于是重新安装了系统 windows server 2008 enterprise 32bit. 详情: 系统安装完成后,重新配置之前那个网站,appache服务配好之后,再配置数据的时候是这样做的,将原来Mysql 文件夹(C:\Windows.old\ProgramData\MySQ

【数据库】 Sqlserver 2008 error 40出现连接错误的解决方法

经常要连接到远程数据库上,因此常常碰到这个错误,然后又屡次忘记解决方法,所以今天坐下笔迹,好下次能快速回忆起来. 一.首先检查数据库的TCP/TP是否启动 1.启动Sql server配置管理器 2.开启TCP/IP 二.检查防火墙 如果上面的方法还是不行,则要检查防火墙是否开放1433端口(因为sqlserver默认的Tcp/Ip端口是1433). 首先按照以下路径进入防火墙控制页面: 控制面板 -> 检查防火墙状态 -> 高级设置 然后按照上图所示 1.点击入站规则 2.点击新建规则 然后

VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法

VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib : fatal error LNK1113: invalid machine type. 无效的机器类型,真的是很让人捉急. 发生这个错误的原因是,我在win8.1上安装的是64bit的mysql服务器,而我编译32位的VC程序,连接的是64位的libmysql.lib库,所以会产生 “无效的机器类型(invalid machine type)”的错误提示. 对于这个“e

数据库中的并发操作带来的一系列问题及解决方法

数据库中常见的并发操作所带来的一致性问题包括:丢失的修改.不可重复读.读脏数据.幻影读(幻影读在一些资料中往往与不可重复读归为一类). 丢失修改 下面我们先来看一个例子,说明并发操作带来的数据的不一致性问题. 考虑飞机订票系统中的一个活动序列: 甲售票点(甲事务)读出某航班的机票余额A,设A=16. 乙售票点(乙事务)读出同一航班的机票余额A,也为16. 甲售票点卖出一张机票,修改余额A←A-1.所以A为15,把A写回数据库. 乙售票点也卖出一张机票,修改余额A←A-1.所以A为15,把A写回数

mysql数据库表字段使用DESC等关键字报错及解决方法

<!-- desc是MySQL数据库的关键字,作为字段名直接使用会报错 --> <sql id="Base_Column"> id,mol,ip,port,name,t.desc,maxAc,maxI,minI,maxW,status</sql> <!-- 查询列表 --> <select id="getTht" resultMap="BaseResultMap" parameterType=

oracle数据库出现“批处理中出现错误: ORA-00001: 违反唯一约束条件”解决方法

最近使用oraclede impdp工具全库导入数据库时,在数据库里面使用出现如下情况. SQL state [null]; error code [17081]; 批处理中出现错误: ORA-00001: 违反唯一约束条件 (GDXAORCL.SYS_C0055359) ; nested exception is java.sql.BatchUpdateException: 批处理中出现错误: ORA-00001: 违反唯一约束条件 (GDXAORCL.SYS_C0055359) -(:155

金蝶K3无法创建数据库,请查看该文件夹的错误的解决方法。

无法创建数据库! 检查你的文件夹C:\XXX\DATA是否存在.并且该系统是不低,或SQL Server服务的启动用户不具备<K3ERP\DBFILE>文件夹的写权限.请改动Windows服务中SQL Server服务的启动用户为Power User组以上的成员. 分析:1.安装路径下的[K3Erp]文件是否有Everyone 权限. 2.确认在安装server时,[数据库服务部件是否安装]. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW5qb

在Apex把csv导入数据库Clob字段再导入到各自对应列的解决方法

1. 需求 有一用户数据存在于csv文件,因为Apex不允许上传超过44列的数据(在该案例中有90多列),所以需求是把所有列先导入到一个clob字段,然后再用存储过程导出到对应的列. 2.解决方法 1) 创建一个有clob字段的表 CREATE TABLE "TABLE3" (  "CONTENT" CLOB ) ; 2)创建一个具有真实列的表 CREATE TABLE "TABLE4" ( "NAME" VARCHAR2(2