Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

WHERE क्लॉज में शर्त के साथ LEFT JOIN क्यों और कब ON में समान LEFT JOIN के बराबर नहीं है?

on क्लॉज का उपयोग तब किया जाता है जब join मिलान पंक्तियों की तलाश में है। where सभी जॉइनिंग के बाद पंक्तियों को फ़िल्टर करने के लिए क्लॉज का उपयोग किया जाता है।

राष्ट्रपति के लिए मतदान करने वाले डिज़्नी टून्स का एक उदाहरण:

declare @candidates table (name varchar(50));
insert @candidates values 
    ('Obama'), 
    ('Romney');
declare @votes table (voter varchar(50), voted_for varchar(50));
insert @votes values 
    ('Mickey Mouse', 'Romney'),
    ('Donald Duck', 'Obama');

select  *
from    @candidates c
left join    
        @votes v
on      c.name = v.voted_for
        and v.voter = 'Donald Duck'

यह अब भी Romney लौटाता है भले ही Donald उसे वोट नहीं दिया। यदि आप शर्त को on . से स्थानांतरित करते हैं where . तक खंड:

select  *
from    @candidates c
left join    
        @votes v
on      c.name = v.voted_for
where   v.voter = 'Donald Duck'

Romney अब परिणाम सेट में नहीं रहेगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SYSDATETIME () SQL सर्वर में उदाहरण (T-SQL)

  2. SQL सर्वर GUID सॉर्ट एल्गोरिथम। क्यों?

  3. SQL सर्वर में विदेशी कुंजी बाधा के साथ तालिका कैसे बनाएं - SQL सर्वर / TSQL ट्यूटोरियल भाग 66

  4. मामला जब खंड द्वारा आदेश के लिए बयान

  5. SQL सर्वर में दो तिथियों के बीच घंटों (दशमलव) में अंतर की गणना कैसे करें?