sql-求助,各位能解释下原因吗?为什么第一条SQL后面那个条件不起作用?第二条起作用了

问题描述

求助,各位能解释下原因吗?为什么第一条SQL后面那个条件不起作用?第二条起作用了

SELECT a.* FROM auctioncommendity a
LEFT JOIN auctionbid b
ON a.id=b.auctioncommendityid AND a.id='000000004ef2f390014ef3024f230015';

SELECT a.* FROM auctioncommendity a
INNER JOIN auctionbid b
ON a.id=b.auctioncommendityid AND a.id='000000004ef2f390014ef3024f230015';

解决方案

这是因为你第一个语句用的是left join。

而left join后面的on的条件 AND a.id='000000004ef2f390014ef3024f230015' 只是用于限制 a在和b关联时,用a中的 满足条件的数据和b关联,那么a中 a.id 不等于'000000004ef2f390014ef3024f230015'的仍然会显示出来,只是 b的哪些列 都是null而已。

要用left join来实现 inner join的效果,可以这么写:

SELECT a.* FROM auctioncommendity a
left JOIN auctionbid b
ON a.id=b.auctioncommendityid
where a.id='000000004ef2f390014ef3024f230015';

等价于你写的这个:

SELECT a.* FROM auctioncommendity a
INNER JOIN auctionbid b
ON a.id=b.auctioncommendityid AND a.id='000000004ef2f390014ef3024f230015';

解决方案二:

http://dwz.cn/EcUxA
你可以看看这个解释

解决方案三:

因为你其中有字段的值为空

时间: 2024-08-02 20:14:59

sql-求助,各位能解释下原因吗?为什么第一条SQL后面那个条件不起作用?第二条起作用了的相关文章

sql server 查询效率-SQL Server查询效率问题,哪个高手可以帮忙解释下?

问题描述 SQL Server查询效率问题,哪个高手可以帮忙解释下? 下面5个SQL查询效率差异很多,BusinessIndex表中有300万条记录, 其中DatAuthor建立有索引,其它字段没有索引. 哪个高手可以分析下什么原因? 非常感谢! SELECT strCode, strIndex from BusinessIndex where 1=1 and UserOrgID=1 and ( BusinessIndex.strIndex like '%热水器%') --查询4s SELECT

请帮忙解释下Collenction变量为空的原因

问题描述 import java.sql.*;public class ConnDB {private Connection ct = null;public static void main(String args[]){ConnDB cdb = new ConnDB();System.out.println(cdb.getConn());}public Connection getConn(){try{Class.forName("com.microsoft.sqlserver.jdbc.S

android-小白求助,求大神帮忙解释下加点注释~谢谢

问题描述 小白求助,求大神帮忙解释下加点注释~谢谢 package com.hanway.oa.activity; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.

SQL Server错误代码及解释(留着备用)

原文:SQL Server错误代码及解释(留着备用) 转自:http://www.ajia.me/Article/193.html Code Error Message  0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 拒绝访问. 6 句柄无效. 7 存储控制块被损坏. 8 存储空间不足,无法处理此命令. 9 存储控制块地址无效. 10 环境错误. 11 试图加载格式错误的程序. 12 访问码无效. 13 数据无效. 14

javascript-求解释下这段代码,可怜可怜我这个新手吧,拜托了,各位大神

问题描述 求解释下这段代码,可怜可怜我这个新手吧,拜托了,各位大神 求解释下这段代码,最主要的是详细解释下条件语句和 onclick,那个好像是各种嵌套吧,所以我希望大神们能一个点一个点的讲~拜托了,各位大神,可怜可怜我这个新手吧, <s:form action="Save" id="form1" theme="simple" > <div class="buttonDiv"> <s:submit

SQL Server误区:在SQL Server 2000兼容模式下不能使用DMV

误区 #13.在SQL Server 2000兼容模式下不能使用DMV 错误 对于兼容模式已经存在了很多误解.80的兼容模式的数据库是否意味着能够附加或恢复到SQL Server 2000数据库?当然不是.这只是意味着一些T-SQL的语法,查询计划的行为以及一些其它方面和SQL Server 2000中行为一样(当然,如果你设置成90兼容模式则和SQL Server 2005中一样). 在SQL Server 2008中,你可以使用ALTER DATABASE SET COMPATIBILITY

SQL SERVER DBCC命令解释

  SQL SERVER DBCC命令解释 八点钟起床一直搞到现在,好多还不太记得,先放上来以后慢慢修改 --1 dbcc trraceon DBCC TRACEOFF --对于数据库死锁,通常可以通过TRACE FLAG 1204.1205.1206,检查ERRORLOG里面的输出,和分析SQLTRACE的执行上下文判断死锁问题的来由. --TRACEON函数的第三个参数设置为-1,表示不单单针对当前connection, --而是针对所有包括未来建立的connection.这样,才够完全,否

jquery-JQuery 语句,easyui里面的,能不能给解释下什么意思? 函数如何调用的,谢谢了

问题描述 JQuery 语句,easyui里面的,能不能给解释下什么意思? 函数如何调用的,谢谢了 function saveUser(){ $('#fm').form('submit',{//当提交表单时候,会发生submit事件 url: url, onSubmit: function(){ return $(this).form('validate'); }, success: function(result){ var result = eval('('+result+')'); if

求解-这段代码里的 and是什么意思?希望大神能逐句给解释下,万分感谢

问题描述 这段代码里的 and是什么意思?希望大神能逐句给解释下,万分感谢 这段代码里的 and是什么意思?希望大神能逐句给解释下,万分感谢 `` public List getList(int userId Pager pager) { String where = "" ""; if (0 < userId) { where = where + "" and t.userId = "" + userId; } ret