<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: SQL SERVER &#8211; Better Performance &#8211; LEFT JOIN or NOT IN?</title>
	<atom:link href="http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/</link>
	<description>Personal Notes of Pinal Dave</description>
	<lastBuildDate>Thu, 09 Feb 2012 11:29:19 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Spain is different...</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-240119</link>
		<dc:creator><![CDATA[Spain is different...]]></dc:creator>
		<pubDate>Wed, 18 Jan 2012 10:06:45 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-240119</guid>
		<description><![CDATA[Very very good !!!!

It helps me alot, the answer to your cuestion is: &quot;depens of the amount of data&quot; in my case I compare two tables with some hundreds of million of records.... if is your case, JOIN must be your choice.]]></description>
		<content:encoded><![CDATA[<p>Very very good !!!!</p>
<p>It helps me alot, the answer to your cuestion is: &#8220;depens of the amount of data&#8221; in my case I compare two tables with some hundreds of million of records&#8230;. if is your case, JOIN must be your choice.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sangram</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-234852</link>
		<dc:creator><![CDATA[sangram]]></dc:creator>
		<pubDate>Tue, 10 Jan 2012 16:18:10 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-234852</guid>
		<description><![CDATA[I do agree with you that we need to use not in instead left join yet Sometime I came across situation where not in gives incorrect result I prefer to use not exist construct as it works as per one can think.
   Further left join give correct result in case if you use not in and inner query  column contain a null then we doesn&#039;t get any result in outer query.]]></description>
		<content:encoded><![CDATA[<p>I do agree with you that we need to use not in instead left join yet Sometime I came across situation where not in gives incorrect result I prefer to use not exist construct as it works as per one can think.<br />
   Further left join give correct result in case if you use not in and inner query  column contain a null then we doesn&#8217;t get any result in outer query.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raja</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-200986</link>
		<dc:creator><![CDATA[Raja]]></dc:creator>
		<pubDate>Mon, 21 Nov 2011 07:04:09 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-200986</guid>
		<description><![CDATA[if exists(select a.PRODH from MVKE as a inner join ZSD_FREIGHT_BOL as b on SUBSTRING(a.PRODH,1,18)=b.PRODH and REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=@Material)                        
  begin                        
   if not exists(select VRKME from MVKE where REPLACE(LTRIM(REPLACE(MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=@Material and VRKME=&#039;&#039;)        
    begin                    
    if exists(select KUNNR from KNMT where cast(cast(KUNNR as int) as varchar(20))=@CustCode and REPLACE(LTRIM(REPLACE(MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=@Material)                
     begin                    
   select distinct(c.BSSKZ) as NominalVar,REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;) as MaterialNo,a.MAKTX as MaterialDesc,                      
   b.KDMAT as CustPartNo,d.VRKME as SkuUM,e.MEINH as ExtUM from MAKT as a                       
   inner join KNMT as b on REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=REPLACE(LTRIM(REPLACE(b.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   inner join MLGN as c on REPLACE(LTRIM(REPLACE(c.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   inner join MVKE as d on REPLACE(LTRIM(REPLACE(d.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   inner join ZSD_FREIGHT_BOL as e on e.PRODH=SUBSTRING(d.PRODH,1,18)                       
   inner join MARM as f on REPLACE(LTRIM(REPLACE(f.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   where a.SPRAS=&#039;E&#039; and CAST(CAST(b.KUNNR as int) as varchar(20))=@CustCode and REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=@Material                     
     end                 
    else                
     begin                
   select distinct(c.BSSKZ) as NominalVar,REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;) as MaterialNo,a.MAKTX as MaterialDesc,                      
   &#039;----&#039; as CustPartNo,d.VRKME as SkuUM,e.MEINH as ExtUM from MAKT as a                       
   --inner join KNMT as b on REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=REPLACE(LTRIM(REPLACE(b.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   inner join MLGN as c on REPLACE(LTRIM(REPLACE(c.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   inner join MVKE as d on REPLACE(LTRIM(REPLACE(d.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   inner join ZSD_FREIGHT_BOL as e on e.PRODH=SUBSTRING(d.PRODH,1,18)                       
   inner join MARM as f on REPLACE(LTRIM(REPLACE(f.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   where a.SPRAS=&#039;E&#039; and REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=@Material                
     end                           
    end         
  else        
   begin                   
    if exists(select KUNNR from KNMT where cast(cast(KUNNR as int) as varchar(20))=@CustCode and REPLACE(LTRIM(REPLACE(MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=@Material)                
     begin                    
   select distinct(c.BSSKZ) as NominalVar,REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;) as MaterialNo,a.MAKTX as MaterialDesc,                      
   b.KDMAT as CustPartNo,M.MEINS as SkuUM,e.MEINH as ExtUM from MAKT as a                       
   inner join KNMT as b on REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=REPLACE(LTRIM(REPLACE(b.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   inner join MLGN as c on REPLACE(LTRIM(REPLACE(c.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   inner join MVKE as d on REPLACE(LTRIM(REPLACE(d.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   inner join ZSD_FREIGHT_BOL as e on e.PRODH=SUBSTRING(d.PRODH,1,18)                       
   inner join MARM as f on REPLACE(LTRIM(REPLACE(f.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)        
   inner join MARA as M on REPLACE(LTRIM(REPLACE(M.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   where a.SPRAS=&#039;E&#039; and CAST(CAST(b.KUNNR as int) as varchar(20))=@CustCode and REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=@Material                     
     end                 
    else                
     begin                
   select distinct(c.BSSKZ) as NominalVar,REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;) as MaterialNo,a.MAKTX as MaterialDesc,                      
   &#039;----&#039; as CustPartNo,M.MEINS as SkuUM,e.MEINH as ExtUM from MAKT as a                       
   --inner join KNMT as b on REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=REPLACE(LTRIM(REPLACE(b.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   inner join MLGN as c on REPLACE(LTRIM(REPLACE(c.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   inner join MVKE as d on REPLACE(LTRIM(REPLACE(d.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   inner join ZSD_FREIGHT_BOL as e on e.PRODH=SUBSTRING(d.PRODH,1,18)                       
   inner join MARM as f on REPLACE(LTRIM(REPLACE(f.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)        
   inner join MARA as M on REPLACE(LTRIM(REPLACE(M.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)                       
   where a.SPRAS=&#039;E&#039; and REPLACE(LTRIM(REPLACE(a.MATNR,&#039;0&#039;,&#039; &#039;)),&#039; &#039;,&#039;0&#039;)=@Material                
     end                           
   end                  
  end  
____________________________-

Any one Please help me to simplify this query and i joined more than 6 tables it  will take more time to execute the process. Anyone Please help me to favour........

Thanks in advance]]></description>
		<content:encoded><![CDATA[<p>if exists(select a.PRODH from MVKE as a inner join ZSD_FREIGHT_BOL as b on SUBSTRING(a.PRODH,1,18)=b.PRODH and REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=@Material)<br />
  begin<br />
   if not exists(select VRKME from MVKE where REPLACE(LTRIM(REPLACE(MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=@Material and VRKME=&#8221;)<br />
    begin<br />
    if exists(select KUNNR from KNMT where cast(cast(KUNNR as int) as varchar(20))=@CustCode and REPLACE(LTRIM(REPLACE(MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=@Material)<br />
     begin<br />
   select distinct(c.BSSKZ) as NominalVar,REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;) as MaterialNo,a.MAKTX as MaterialDesc,<br />
   b.KDMAT as CustPartNo,d.VRKME as SkuUM,e.MEINH as ExtUM from MAKT as a<br />
   inner join KNMT as b on REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=REPLACE(LTRIM(REPLACE(b.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join MLGN as c on REPLACE(LTRIM(REPLACE(c.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join MVKE as d on REPLACE(LTRIM(REPLACE(d.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join ZSD_FREIGHT_BOL as e on e.PRODH=SUBSTRING(d.PRODH,1,18)<br />
   inner join MARM as f on REPLACE(LTRIM(REPLACE(f.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   where a.SPRAS=&#8217;E&#8217; and CAST(CAST(b.KUNNR as int) as varchar(20))=@CustCode and REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=@Material<br />
     end<br />
    else<br />
     begin<br />
   select distinct(c.BSSKZ) as NominalVar,REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;) as MaterialNo,a.MAKTX as MaterialDesc,<br />
   &#8216;&#8212;-&#8217; as CustPartNo,d.VRKME as SkuUM,e.MEINH as ExtUM from MAKT as a<br />
   &#8211;inner join KNMT as b on REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=REPLACE(LTRIM(REPLACE(b.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join MLGN as c on REPLACE(LTRIM(REPLACE(c.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join MVKE as d on REPLACE(LTRIM(REPLACE(d.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join ZSD_FREIGHT_BOL as e on e.PRODH=SUBSTRING(d.PRODH,1,18)<br />
   inner join MARM as f on REPLACE(LTRIM(REPLACE(f.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   where a.SPRAS=&#8217;E&#8217; and REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=@Material<br />
     end<br />
    end<br />
  else<br />
   begin<br />
    if exists(select KUNNR from KNMT where cast(cast(KUNNR as int) as varchar(20))=@CustCode and REPLACE(LTRIM(REPLACE(MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=@Material)<br />
     begin<br />
   select distinct(c.BSSKZ) as NominalVar,REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;) as MaterialNo,a.MAKTX as MaterialDesc,<br />
   b.KDMAT as CustPartNo,M.MEINS as SkuUM,e.MEINH as ExtUM from MAKT as a<br />
   inner join KNMT as b on REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=REPLACE(LTRIM(REPLACE(b.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join MLGN as c on REPLACE(LTRIM(REPLACE(c.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join MVKE as d on REPLACE(LTRIM(REPLACE(d.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join ZSD_FREIGHT_BOL as e on e.PRODH=SUBSTRING(d.PRODH,1,18)<br />
   inner join MARM as f on REPLACE(LTRIM(REPLACE(f.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join MARA as M on REPLACE(LTRIM(REPLACE(M.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   where a.SPRAS=&#8217;E&#8217; and CAST(CAST(b.KUNNR as int) as varchar(20))=@CustCode and REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=@Material<br />
     end<br />
    else<br />
     begin<br />
   select distinct(c.BSSKZ) as NominalVar,REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;) as MaterialNo,a.MAKTX as MaterialDesc,<br />
   &#8216;&#8212;-&#8217; as CustPartNo,M.MEINS as SkuUM,e.MEINH as ExtUM from MAKT as a<br />
   &#8211;inner join KNMT as b on REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=REPLACE(LTRIM(REPLACE(b.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join MLGN as c on REPLACE(LTRIM(REPLACE(c.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join MVKE as d on REPLACE(LTRIM(REPLACE(d.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join ZSD_FREIGHT_BOL as e on e.PRODH=SUBSTRING(d.PRODH,1,18)<br />
   inner join MARM as f on REPLACE(LTRIM(REPLACE(f.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   inner join MARA as M on REPLACE(LTRIM(REPLACE(M.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)= REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)<br />
   where a.SPRAS=&#8217;E&#8217; and REPLACE(LTRIM(REPLACE(a.MATNR,&#8217;0&#8242;,&#8217; &#8216;)),&#8217; &#8216;,&#8217;0&#8242;)=@Material<br />
     end<br />
   end<br />
  end<br />
____________________________-</p>
<p>Any one Please help me to simplify this query and i joined more than 6 tables it  will take more time to execute the process. Anyone Please help me to favour&#8230;&#8230;..</p>
<p>Thanks in advance</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raghav</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-191634</link>
		<dc:creator><![CDATA[Raghav]]></dc:creator>
		<pubDate>Wed, 09 Nov 2011 14:59:20 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-191634</guid>
		<description><![CDATA[Bit tricky.]]></description>
		<content:encoded><![CDATA[<p>Bit tricky.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthew</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-168763</link>
		<dc:creator><![CDATA[Matthew]]></dc:creator>
		<pubDate>Fri, 16 Sep 2011 15:36:39 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-168763</guid>
		<description><![CDATA[Blah... typo...

Last line should be:
(T1.col2 = 1) AND (T1.col3 = 2) AND (T2.col1 IS NULL)]]></description>
		<content:encoded><![CDATA[<p>Blah&#8230; typo&#8230;</p>
<p>Last line should be:<br />
(T1.col2 = 1) AND (T1.col3 = 2) AND (T2.col1 IS NULL)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthew</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-168762</link>
		<dc:creator><![CDATA[Matthew]]></dc:creator>
		<pubDate>Fri, 16 Sep 2011 15:35:18 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-168762</guid>
		<description><![CDATA[Figured it out, was simpler than I thought :)

CODE:
SELECT col1, col2, col3
FROM dbo.myTable AS T1
WHERE (col2 = 2) AND (col3 = 1) OR
(col2 = 1) AND (col3 = 2)
AND (col1 NOT IN (SELECT col1
FROM dbo.myTable
WHERE (col2 = 2) AND (col3 = 1)))

Is the same as...

CODE:
SELECT col1, col2, col3
FROM dbo.myTable AS T1 LEFT OUTER JOIN
dbo.myTable AS T2 ON T1.col1 = T2.col1
WHERE (T1.col2 = 2) AND (T1.col3 = 3) OR
(T1.col2 = 1) AND (T2.col3 = 2) AND (T2.col1 IS NULL)

The reason I wanted to find a way to convert this subquery into a join was that I am trying to create this as an indexed view.  Figured I&#039;d post this response in hopes that it may help someone else in the future. :)]]></description>
		<content:encoded><![CDATA[<p>Figured it out, was simpler than I thought :)</p>
<p>CODE:<br />
SELECT col1, col2, col3<br />
FROM dbo.myTable AS T1<br />
WHERE (col2 = 2) AND (col3 = 1) OR<br />
(col2 = 1) AND (col3 = 2)<br />
AND (col1 NOT IN (SELECT col1<br />
FROM dbo.myTable<br />
WHERE (col2 = 2) AND (col3 = 1)))</p>
<p>Is the same as&#8230;</p>
<p>CODE:<br />
SELECT col1, col2, col3<br />
FROM dbo.myTable AS T1 LEFT OUTER JOIN<br />
dbo.myTable AS T2 ON T1.col1 = T2.col1<br />
WHERE (T1.col2 = 2) AND (T1.col3 = 3) OR<br />
(T1.col2 = 1) AND (T2.col3 = 2) AND (T2.col1 IS NULL)</p>
<p>The reason I wanted to find a way to convert this subquery into a join was that I am trying to create this as an indexed view.  Figured I&#8217;d post this response in hopes that it may help someone else in the future. :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthew</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-168485</link>
		<dc:creator><![CDATA[Matthew]]></dc:creator>
		<pubDate>Thu, 15 Sep 2011 20:57:53 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-168485</guid>
		<description><![CDATA[I&#039;m trying to change this subquery into a join and was hoping I might get a comment back here. :)

CODE:
SELECT col1, col2, col3
FROM dbo.myTable AS T1
WHERE     (col2 = 2) AND (col3 = 1) OR
          (col2 = 1) AND (col3 = 2)
          AND (col1 NOT IN (SELECT col1
                            FROM dbo.myTable
                            WHERE (col2 = 2) AND (col3 = 1)))]]></description>
		<content:encoded><![CDATA[<p>I&#8217;m trying to change this subquery into a join and was hoping I might get a comment back here. :)</p>
<p>CODE:<br />
SELECT col1, col2, col3<br />
FROM dbo.myTable AS T1<br />
WHERE     (col2 = 2) AND (col3 = 1) OR<br />
          (col2 = 1) AND (col3 = 2)<br />
          AND (col1 NOT IN (SELECT col1<br />
                            FROM dbo.myTable<br />
                            WHERE (col2 = 2) AND (col3 = 1)))</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: william</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-146984</link>
		<dc:creator><![CDATA[william]]></dc:creator>
		<pubDate>Fri, 08 Jul 2011 20:49:23 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-146984</guid>
		<description><![CDATA[&#039;Show result
Select  &#039;02&#039;,ccd01emp,ccd01ano,ccd01mes,ccd01subd,    
ccd01numer,ccd01ord,ccd01cta,ccd01deb,ccd01hab,ccd01con    
 from ccd Where     
ccd01emp=&#039;01&#039;    
And ccd01ano=&#039;2011&#039;
And ccd01mes=&#039;05&#039;
And ccd01cta Not in (Select ccm01cta from ccm01cta  Where     
					ccm01emp=&#039;01&#039;
					And ccm01aa=&#039;2011&#039;)   

&#039;Not Show result
Select  &#039;02&#039;,ccd01emp,ccd01ano,ccd01mes,ccd01subd,    
ccd01numer,ccd01ord,ccd01cta,ccd01deb,ccd01hab,ccd01con    
 from ccd left outer Join ccm01cta 
On ccd01cta = ccm01cta  
Where     
ccd01emp=&#039;01&#039;    
And ccm01emp=&#039;01&#039;
And ccd01ano=&#039;2011&#039;
And ccm01aa=&#039;2011&#039;
And ccd01mes=&#039;05&#039;
And isnull(ccm01cta,&#039;&#039;)=&#039;&#039;
&#039;]]></description>
		<content:encoded><![CDATA[<p>&#8216;Show result<br />
Select  &#8217;02&#8242;,ccd01emp,ccd01ano,ccd01mes,ccd01subd,<br />
ccd01numer,ccd01ord,ccd01cta,ccd01deb,ccd01hab,ccd01con<br />
 from ccd Where<br />
ccd01emp=&#8217;01&#8242;<br />
And ccd01ano=&#8217;2011&#8242;<br />
And ccd01mes=&#8217;05&#8242;<br />
And ccd01cta Not in (Select ccm01cta from ccm01cta  Where<br />
					ccm01emp=&#8217;01&#8242;<br />
					And ccm01aa=&#8217;2011&#8242;)   </p>
<p>&#8216;Not Show result<br />
Select  &#8217;02&#8242;,ccd01emp,ccd01ano,ccd01mes,ccd01subd,<br />
ccd01numer,ccd01ord,ccd01cta,ccd01deb,ccd01hab,ccd01con<br />
 from ccd left outer Join ccm01cta<br />
On ccd01cta = ccm01cta<br />
Where<br />
ccd01emp=&#8217;01&#8242;<br />
And ccm01emp=&#8217;01&#8242;<br />
And ccd01ano=&#8217;2011&#8242;<br />
And ccm01aa=&#8217;2011&#8242;<br />
And ccd01mes=&#8217;05&#8242;<br />
And isnull(ccm01cta,&#8221;)=&#8221;<br />
&#8216;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lakshmi</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-138637</link>
		<dc:creator><![CDATA[lakshmi]]></dc:creator>
		<pubDate>Fri, 03 Jun 2011 12:56:30 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-138637</guid>
		<description><![CDATA[It looks like LEFT JOIN gives more accurate results than NOT IN function. 

This query returned 0 records.

  SELECT  DISTINCT(A.CSN_ID) FROM TRG_LINKED_ENCS A 
  WHERE A.CSN_ID not in (SELECT DISTINCT(CSN_ID) FROM
  TPL_TXDAYS  )

This query retured 8700 records. 

SELECT A.CSN_ID FROM TRG_LINKED_ENCS  A
LEFT JOIN TPL_TXDAYS B ON 
A.CSN_ID =B.CSN_ID
WHERE B.CSN_ID IS NULL]]></description>
		<content:encoded><![CDATA[<p>It looks like LEFT JOIN gives more accurate results than NOT IN function. </p>
<p>This query returned 0 records.</p>
<p>  SELECT  DISTINCT(A.CSN_ID) FROM TRG_LINKED_ENCS A<br />
  WHERE A.CSN_ID not in (SELECT DISTINCT(CSN_ID) FROM<br />
  TPL_TXDAYS  )</p>
<p>This query retured 8700 records. </p>
<p>SELECT A.CSN_ID FROM TRG_LINKED_ENCS  A<br />
LEFT JOIN TPL_TXDAYS B ON<br />
A.CSN_ID =B.CSN_ID<br />
WHERE B.CSN_ID IS NULL</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: neeraj prasad sharma</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-111641</link>
		<dc:creator><![CDATA[neeraj prasad sharma]]></dc:creator>
		<pubDate>Tue, 18 Jan 2011 12:42:39 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-111641</guid>
		<description><![CDATA[good article......................]]></description>
		<content:encoded><![CDATA[<p>good article&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JJP</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-101721</link>
		<dc:creator><![CDATA[JJP]]></dc:creator>
		<pubDate>Tue, 23 Nov 2010 19:15:44 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-101721</guid>
		<description><![CDATA[Thanks for the advice - very practical performance analysis approach.  Any idea how this might correlate to the set size in the subquery or join?]]></description>
		<content:encoded><![CDATA[<p>Thanks for the advice &#8211; very practical performance analysis approach.  Any idea how this might correlate to the set size in the subquery or join?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JAVAMAN</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-94479</link>
		<dc:creator><![CDATA[JAVAMAN]]></dc:creator>
		<pubDate>Wed, 20 Oct 2010 18:07:56 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-94479</guid>
		<description><![CDATA[Hi the other day i make a equivalence between compare JOINS, WHERE, NOT IN, AND EXIST, this was in ORACLE 10G: 
 
I- CREACIÓN TABLAS:
CREATE TABLE TB_DEMO_A( ID NUMBER, DESCRIPCION VARCHAR2( 10 ) );
CREATE TABLE TB_DEMO_B( ID NUMBER, DESCRIPCION VARCHAR2( 10 ) );

II- CREACIÓN INSERTS:
INSERT INTO TB_DEMO_A VALUES( 1, &#039;PRIMERO&#039;   );
INSERT INTO TB_DEMO_A VALUES( 2, &#039;SEGUNDO&#039; );
INSERT INTO TB_DEMO_A VALUES( 3, &#039;TERCERO&#039;  );
INSERT INTO TB_DEMO_A VALUES( 4, &#039;CUARTO&#039;    );

INSERT INTO TB_DEMO_B VALUES( 1, &#039;PRIMERO&#039;   );
INSERT INTO TB_DEMO_B VALUES( 2, &#039;SEGUNDO&#039; );
INSERT INTO TB_DEMO_B VALUES( 5, &#039;QUINTO&#039;     );
INSERT INTO TB_DEMO_B VALUES( 6, &#039;SEXTO&#039;       );

III- SELECTS:
SELECT a.* FROM TB_DEMO_A  a;
SELECT b.* FROM TB_DEMO_B  b;


IV.- AMARRES X CASO:

4.1.-  “CONJUNTO  A”  INTERSECCION  “CONJUNTO  B”:   

4.1.1.-  FORMA #1:
SELECT a.*, b.* 
FROM    TB_DEMO_A   a, 
               TB_DEMO_B   b 
WHERE  a.ID = b.ID;

 4.1.1.-  FORMA #2:
SELECT         a.*, b.* 
FROM            TB_DEMO_A   a
INNER JOIN  TB_DEMO_B   b 
ON                 a.ID = b.ID;


4.2.-  (“CONJUNTO  A”  INTERSECCION  “CONJUNTO  B”)  + ( “CONJUNTO  A”  MENOS  CONJUNTO  B”  ):   

4.2.1.-  FORMA #1:
SELECT  a.*, b.*  
FROM     TB_DEMO_A   a, 
               TB_DEMO_B    b 
WHERE  a.ID = b.ID(+);  

4.2.2.-  FORMA #2:
SELECT     a.*, b.* 
FROM        TB_DEMO_A   a
LEFT JOIN TB_DEMO_B   b 
ON              a.ID = b.ID;


4.3.-  (“CONJUNTO  A”  INTERSECCION  “CONJUNTO  B”)  + ( “CONJUNTO  B”  MENOS  CONJUNTO  A”  ):   

4.3.1.-  FORMA #1:
SELECT a.*, b.*  
FROM    TB_DEMO_A   a, 
               TB_DEMO_B   b 
WHERE  a.ID(+) = b.ID;  

4.3.2.-  FORMA #2:
SELECT         a.*, b.* 
FROM            TB_DEMO_A   a
RIGHT JOIN  TB_DEMO_B   b 
ON                 a.ID = b.ID;


4.4.-  ( “CONJUNTO  A”  MENOS  CONJUNTO  B”  ):

4.4.1.-  FORMA #1:
SELECT  a.*, b.*  
FROM    TB_DEMO_A   a, 
               TB_DEMO_B   b 
WHERE  a.ID = b.ID(+) AND
       b.ID IS NULL;  
 
4.4.2.-  FORMA #2:
SELECT      a.*, b.* 
FROM         TB_DEMO_A   a
LEFT JOIN  TB_DEMO_B   b 
ON               a.ID = b.ID    
WHERE       b.ID IS NULL 

4.4.3.-  FORMA #3:
SELECT  a.* 
FROM     TB_DEMO_A   a
WHERE   a.ID
NOT IN (  SELECT  b.ID 
FROM     TB_DEMO_B  b
 );

4.4.4.-  FORMA #4:
SELECT  a.* 
FROM    TB_DEMO_A  a
WHERE NOT EXISTS( SELECT b.ID 
                  FROM   TB_DEMO_B b
                  WHERE  a.ID = b.ID 
                 );


4.5.-  ( “CONJUNTO  B”  MENOS  CONJUNTO  A”  ):

4.5.1.-  FORMA #1:
SELECT  a.*, b.*  
FROM    TB_DEMO_A   a, 
               TB_DEMO_B   b 
WHERE  a.ID(+) = b.ID AND
               a.ID IS NULL;  

4.5.2.-  FORMA #2:
SELECT      a.*, b.* 
FROM         TB_DEMO_A   a
LEFT JOIN  TB_DEMO_B   b 
ON               a.ID = b.ID    
WHERE       a.ID IS NULL 
       
4.5.3.-  FORMA #3:
SELECT  b.* 
FROM    TB_DEMO_B  b
WHERE  b.ID
NOT IN (  SELECT  a.ID
FROM     TB_DEMO_A   a
 );

4.5.4.-  FORMA #4:
SELECT  b.* 
FROM    TB_DEMO_B  b
WHERE NOT EXISTS( SELECT a.ID 
                  FROM   TB_DEMO_A a
                  WHERE  b.ID = a.ID 
                 );


Diferents Style to Make the same.]]></description>
		<content:encoded><![CDATA[<p>Hi the other day i make a equivalence between compare JOINS, WHERE, NOT IN, AND EXIST, this was in ORACLE 10G: </p>
<p>I- CREACIÓN TABLAS:<br />
CREATE TABLE TB_DEMO_A( ID NUMBER, DESCRIPCION VARCHAR2( 10 ) );<br />
CREATE TABLE TB_DEMO_B( ID NUMBER, DESCRIPCION VARCHAR2( 10 ) );</p>
<p>II- CREACIÓN INSERTS:<br />
INSERT INTO TB_DEMO_A VALUES( 1, &#8216;PRIMERO&#8217;   );<br />
INSERT INTO TB_DEMO_A VALUES( 2, &#8216;SEGUNDO&#8217; );<br />
INSERT INTO TB_DEMO_A VALUES( 3, &#8216;TERCERO&#8217;  );<br />
INSERT INTO TB_DEMO_A VALUES( 4, &#8216;CUARTO&#8217;    );</p>
<p>INSERT INTO TB_DEMO_B VALUES( 1, &#8216;PRIMERO&#8217;   );<br />
INSERT INTO TB_DEMO_B VALUES( 2, &#8216;SEGUNDO&#8217; );<br />
INSERT INTO TB_DEMO_B VALUES( 5, &#8216;QUINTO&#8217;     );<br />
INSERT INTO TB_DEMO_B VALUES( 6, &#8216;SEXTO&#8217;       );</p>
<p>III- SELECTS:<br />
SELECT a.* FROM TB_DEMO_A  a;<br />
SELECT b.* FROM TB_DEMO_B  b;</p>
<p>IV.- AMARRES X CASO:</p>
<p>4.1.-  “CONJUNTO  A”  INTERSECCION  “CONJUNTO  B”:   </p>
<p>4.1.1.-  FORMA #1:<br />
SELECT a.*, b.*<br />
FROM    TB_DEMO_A   a,<br />
               TB_DEMO_B   b<br />
WHERE  a.ID = b.ID;</p>
<p> 4.1.1.-  FORMA #2:<br />
SELECT         a.*, b.*<br />
FROM            TB_DEMO_A   a<br />
INNER JOIN  TB_DEMO_B   b<br />
ON                 a.ID = b.ID;</p>
<p>4.2.-  (“CONJUNTO  A”  INTERSECCION  “CONJUNTO  B”)  + ( “CONJUNTO  A”  MENOS  CONJUNTO  B”  ):   </p>
<p>4.2.1.-  FORMA #1:<br />
SELECT  a.*, b.*<br />
FROM     TB_DEMO_A   a,<br />
               TB_DEMO_B    b<br />
WHERE  a.ID = b.ID(+);  </p>
<p>4.2.2.-  FORMA #2:<br />
SELECT     a.*, b.*<br />
FROM        TB_DEMO_A   a<br />
LEFT JOIN TB_DEMO_B   b<br />
ON              a.ID = b.ID;</p>
<p>4.3.-  (“CONJUNTO  A”  INTERSECCION  “CONJUNTO  B”)  + ( “CONJUNTO  B”  MENOS  CONJUNTO  A”  ):   </p>
<p>4.3.1.-  FORMA #1:<br />
SELECT a.*, b.*<br />
FROM    TB_DEMO_A   a,<br />
               TB_DEMO_B   b<br />
WHERE  a.ID(+) = b.ID;  </p>
<p>4.3.2.-  FORMA #2:<br />
SELECT         a.*, b.*<br />
FROM            TB_DEMO_A   a<br />
RIGHT JOIN  TB_DEMO_B   b<br />
ON                 a.ID = b.ID;</p>
<p>4.4.-  ( “CONJUNTO  A”  MENOS  CONJUNTO  B”  ):</p>
<p>4.4.1.-  FORMA #1:<br />
SELECT  a.*, b.*<br />
FROM    TB_DEMO_A   a,<br />
               TB_DEMO_B   b<br />
WHERE  a.ID = b.ID(+) AND<br />
       b.ID IS NULL;  </p>
<p>4.4.2.-  FORMA #2:<br />
SELECT      a.*, b.*<br />
FROM         TB_DEMO_A   a<br />
LEFT JOIN  TB_DEMO_B   b<br />
ON               a.ID = b.ID<br />
WHERE       b.ID IS NULL </p>
<p>4.4.3.-  FORMA #3:<br />
SELECT  a.*<br />
FROM     TB_DEMO_A   a<br />
WHERE   a.ID<br />
NOT IN (  SELECT  b.ID<br />
FROM     TB_DEMO_B  b<br />
 );</p>
<p>4.4.4.-  FORMA #4:<br />
SELECT  a.*<br />
FROM    TB_DEMO_A  a<br />
WHERE NOT EXISTS( SELECT b.ID<br />
                  FROM   TB_DEMO_B b<br />
                  WHERE  a.ID = b.ID<br />
                 );</p>
<p>4.5.-  ( “CONJUNTO  B”  MENOS  CONJUNTO  A”  ):</p>
<p>4.5.1.-  FORMA #1:<br />
SELECT  a.*, b.*<br />
FROM    TB_DEMO_A   a,<br />
               TB_DEMO_B   b<br />
WHERE  a.ID(+) = b.ID AND<br />
               a.ID IS NULL;  </p>
<p>4.5.2.-  FORMA #2:<br />
SELECT      a.*, b.*<br />
FROM         TB_DEMO_A   a<br />
LEFT JOIN  TB_DEMO_B   b<br />
ON               a.ID = b.ID<br />
WHERE       a.ID IS NULL </p>
<p>4.5.3.-  FORMA #3:<br />
SELECT  b.*<br />
FROM    TB_DEMO_B  b<br />
WHERE  b.ID<br />
NOT IN (  SELECT  a.ID<br />
FROM     TB_DEMO_A   a<br />
 );</p>
<p>4.5.4.-  FORMA #4:<br />
SELECT  b.*<br />
FROM    TB_DEMO_B  b<br />
WHERE NOT EXISTS( SELECT a.ID<br />
                  FROM   TB_DEMO_A a<br />
                  WHERE  b.ID = a.ID<br />
                 );</p>
<p>Diferents Style to Make the same.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vishal</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-79404</link>
		<dc:creator><![CDATA[Vishal]]></dc:creator>
		<pubDate>Fri, 09 Jul 2010 10:36:08 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-79404</guid>
		<description><![CDATA[Hey All,
Can anybody tell me how to use not in clause with more tan 1 parameter or any other way.

e..g
select mobileno from table1 where (boxno,fileno) not in(select boxno,fileno from tabel2)]]></description>
		<content:encoded><![CDATA[<p>Hey All,<br />
Can anybody tell me how to use not in clause with more tan 1 parameter or any other way.</p>
<p>e..g<br />
select mobileno from table1 where (boxno,fileno) not in(select boxno,fileno from tabel2)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vampal Lee</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-78244</link>
		<dc:creator><![CDATA[Vampal Lee]]></dc:creator>
		<pubDate>Wed, 30 Jun 2010 06:07:00 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-78244</guid>
		<description><![CDATA[Nice Post, I am looking for a method to replace IN/NOT IN

Most of the time I heard Join is better than subqueries]]></description>
		<content:encoded><![CDATA[<p>Nice Post, I am looking for a method to replace IN/NOT IN</p>
<p>Most of the time I heard Join is better than subqueries</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Madhivanan</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-63265</link>
		<dc:creator><![CDATA[Madhivanan]]></dc:creator>
		<pubDate>Fri, 19 Mar 2010 10:23:58 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-63265</guid>
		<description><![CDATA[Beware of SET ROWCOUNT
It may be removed from future relases of SQL Server
So make use of TOP instead]]></description>
		<content:encoded><![CDATA[<p>Beware of SET ROWCOUNT<br />
It may be removed from future relases of SQL Server<br />
So make use of TOP instead</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Madhivanan</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-63261</link>
		<dc:creator><![CDATA[Madhivanan]]></dc:creator>
		<pubDate>Fri, 19 Mar 2010 10:20:13 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-63261</guid>
		<description><![CDATA[USE IN or NOT IN]]></description>
		<content:encoded><![CDATA[<p>USE IN or NOT IN</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marko Parkkola</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-60993</link>
		<dc:creator><![CDATA[Marko Parkkola]]></dc:creator>
		<pubDate>Thu, 11 Feb 2010 07:31:32 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-60993</guid>
		<description><![CDATA[Huh! This was a tricky one. I&#039;m not sure if I still understood this correctly though since I&#039;m not getting that last date 11/01/09 in the results.

CREATE FUNCTION fn_get_days_forward
(
	@FirstDay datetime
)
RETURNS @dates TABLE 
(
	dt DATETIME
)
AS
BEGIN
	DECLARE @nextDay DATETIME
	SELECT TOP 1 @nextDay = DATEADD(DAY, -1, dt) FROM dates WHERE dt &gt; @FirstDay ORDER BY dt ASC
	
	SET @FirstDay = DATEADD(DAY, 1, @FirstDay)
	WHILE @FirstDay &lt; @nextDay
	BEGIN
		INSERT INTO @dates SELECT @FirstDay

		SET @FirstDay = DATEADD(DAY, 1, @FirstDay)
	END

	RETURN
END
GO

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, days.dt))
FROM dates CROSS APPLY fn_get_days_forward(dt) AS days]]></description>
		<content:encoded><![CDATA[<p>Huh! This was a tricky one. I&#8217;m not sure if I still understood this correctly though since I&#8217;m not getting that last date 11/01/09 in the results.</p>
<p>CREATE FUNCTION fn_get_days_forward<br />
(<br />
	@FirstDay datetime<br />
)<br />
RETURNS @dates TABLE<br />
(<br />
	dt DATETIME<br />
)<br />
AS<br />
BEGIN<br />
	DECLARE @nextDay DATETIME<br />
	SELECT TOP 1 @nextDay = DATEADD(DAY, -1, dt) FROM dates WHERE dt &gt; @FirstDay ORDER BY dt ASC</p>
<p>	SET @FirstDay = DATEADD(DAY, 1, @FirstDay)<br />
	WHILE @FirstDay &lt; @nextDay<br />
	BEGIN<br />
		INSERT INTO @dates SELECT @FirstDay</p>
<p>		SET @FirstDay = DATEADD(DAY, 1, @FirstDay)<br />
	END</p>
<p>	RETURN<br />
END<br />
GO</p>
<p>SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, days.dt))<br />
FROM dates CROSS APPLY fn_get_days_forward(dt) AS days</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jalan</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-60937</link>
		<dc:creator><![CDATA[Jalan]]></dc:creator>
		<pubDate>Wed, 10 Feb 2010 12:39:39 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-60937</guid>
		<description><![CDATA[DATE table
01/01/09 01.00 AM
02/01/09 12.00 PM
04/01/09 02.00 PM
05/01/09 05.00 PM
06/01/09 06.00 PM
07/01/09 09.00 PM
08/01/09 09.00 PM
12/01/09 04.00 PM

Consider these as sample dates, now my output should be 
03/01/09 
09/01/09
10/01/09
11/01/09]]></description>
		<content:encoded><![CDATA[<p>DATE table<br />
01/01/09 01.00 AM<br />
02/01/09 12.00 PM<br />
04/01/09 02.00 PM<br />
05/01/09 05.00 PM<br />
06/01/09 06.00 PM<br />
07/01/09 09.00 PM<br />
08/01/09 09.00 PM<br />
12/01/09 04.00 PM</p>
<p>Consider these as sample dates, now my output should be<br />
03/01/09<br />
09/01/09<br />
10/01/09<br />
11/01/09</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Imran Mohammed</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-60907</link>
		<dc:creator><![CDATA[Imran Mohammed]]></dc:creator>
		<pubDate>Wed, 10 Feb 2010 00:54:57 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-60907</guid>
		<description><![CDATA[@Jalan

Either give sample data or give us more details. When you say 24 Hours, is this 24 hours between two successful dates ? Please help us to help you by providing more information.

~ IM.]]></description>
		<content:encoded><![CDATA[<p>@Jalan</p>
<p>Either give sample data or give us more details. When you say 24 Hours, is this 24 hours between two successful dates ? Please help us to help you by providing more information.</p>
<p>~ IM.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jalan</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-60898</link>
		<dc:creator><![CDATA[Jalan]]></dc:creator>
		<pubDate>Tue, 09 Feb 2010 19:54:15 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-60898</guid>
		<description><![CDATA[I have a table, and there is a date column in it, and many records in it.
My query is, i want to retrieve all the dates of a particular calender year which are not there in the table.
i.e., i want to know the dates which are not present in my table and which has a gap of more than 24 hrs 


To put it in simple, i want to know the transaction of a particular inventory for which there is no transaction on that particular date, i want to know all the dates of year(with 24 hrs gap)]]></description>
		<content:encoded><![CDATA[<p>I have a table, and there is a date column in it, and many records in it.<br />
My query is, i want to retrieve all the dates of a particular calender year which are not there in the table.<br />
i.e., i want to know the dates which are not present in my table and which has a gap of more than 24 hrs </p>
<p>To put it in simple, i want to know the transaction of a particular inventory for which there is no transaction on that particular date, i want to know all the dates of year(with 24 hrs gap)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barbara70</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-56580</link>
		<dc:creator><![CDATA[Barbara70]]></dc:creator>
		<pubDate>Sat, 10 Oct 2009 15:59:46 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-56580</guid>
		<description><![CDATA[Thanks a lotI consider this site a very good one for me to face the interview questions ahead of me. ,]]></description>
		<content:encoded><![CDATA[<p>Thanks a lotI consider this site a very good one for me to face the interview questions ahead of me. ,</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pradip</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-56470</link>
		<dc:creator><![CDATA[Pradip]]></dc:creator>
		<pubDate>Tue, 06 Oct 2009 10:08:42 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-56470</guid>
		<description><![CDATA[When you execute both query at one time it will show relative cost for each query.]]></description>
		<content:encoded><![CDATA[<p>When you execute both query at one time it will show relative cost for each query.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pradip</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-56466</link>
		<dc:creator><![CDATA[Pradip]]></dc:creator>
		<pubDate>Tue, 06 Oct 2009 09:00:42 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-56466</guid>
		<description><![CDATA[I am not aware of how you measured resource percentage given &quot;20% resources of execution plan and LEFT JOIN takes 80% resources of execution plan&quot;. I need little more explanation.

Regards,
Pradip]]></description>
		<content:encoded><![CDATA[<p>I am not aware of how you measured resource percentage given &#8220;20% resources of execution plan and LEFT JOIN takes 80% resources of execution plan&#8221;. I need little more explanation.</p>
<p>Regards,<br />
Pradip</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sam Rudolph</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-55552</link>
		<dc:creator><![CDATA[Sam Rudolph]]></dc:creator>
		<pubDate>Thu, 03 Sep 2009 10:30:57 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-55552</guid>
		<description><![CDATA[hey Dave great thread, can you please tell me how did analyse the preform of the query,whats the meaning of 80% of the batch,and whats the tool you are using for the analysis??...
hope for the quick reply.
bbye]]></description>
		<content:encoded><![CDATA[<p>hey Dave great thread, can you please tell me how did analyse the preform of the query,whats the meaning of 80% of the batch,and whats the tool you are using for the analysis??&#8230;<br />
hope for the quick reply.<br />
bbye</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James</title>
		<link>http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/#comment-53356</link>
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Tue, 30 Jun 2009 14:05:04 +0000</pubDate>
		<guid isPermaLink="false">http://sqlauthority.wordpress.com/?p=578#comment-53356</guid>
		<description><![CDATA[You are a star, three days of banging my head against the monitor have come to an end as a result of reading  this post. 

Thanks]]></description>
		<content:encoded><![CDATA[<p>You are a star, three days of banging my head against the monitor have come to an end as a result of reading  this post. </p>
<p>Thanks</p>
]]></content:encoded>
	</item>
</channel>
</rss>

