2010-09-27 12 views
6

मैं एकाधिक 'इन' प्रश्नों को सरल कैसे बना सकता हूं? यह कई सबक्वेरी उपयोग करने के लिए कुशल है: में नहीं (...) और नहीं में (..) और नहीं (..)एकाधिक तालिकाओं के लिए IN IN का उपयोग नहीं करते

में मैं गिनती का उपयोग कर रहा

Select count (VisitorID) 

from Company 

where VisitorID not in (select VisitorID from UserLog where ActionID = 2) 

and VisitorID not in (select VisitorID from Supplies where productID = 4) 
+0

है आप टेबल आकार की एक विचार दे सकते हैं? दो उप-चयनों की चयनकता के बारे में क्या? एक तिहाई, 100 में 1? – pascal

उत्तर

6
Select count (VisitorID) 

from Company C 
where 
NOT EXISTS (select * from UserLog U where ActionID = 2 AND C.VisitorID = U.VisitorID) 
AND 
NOT EXISTS (select * from Supplies S where productID = 4 AND S.VisitorID = U.VisitorID) 

क्यों मौजूद नहीं है के लिए एक संघ इस्तेमाल कर सकते हैं?

  • नहीं

    : कई उत्पादन पंक्तियों अगर कई UserLog या visitorId प्रति आपूर्ति: UserLog या आपूर्ति में किसी भी शून्य visitorId मूल्यों कोई मुकाबला नहीं

  • (बायाँ शामिल हों) का अर्थ है। जरूरत DISTINCT जो योजना

आम तौर पर बदलता है, मौजूद नहीं है केवल सही विकल्प

2

(खेद है कि बारे में भूल गया) आप आईडी समूह

Select User 

from Company 

where VisitorID not in (
select VisitorID from UserLog where ActionID = 2 
UNION 
select VisitorID from Supplies where productID = 4 
) 
+1

यह मेरे लिए काम किया। धन्यवाद। – tshenolo

संबंधित मुद्दे