मान लें कि मेरे पास केवल एक कॉलम के साथ एक तालिका t1 है: id
, और मेरे पास दो स्तंभों के साथ एक तालिका t2 है: id
और Memo
। मुझे t1 से उन id
का चयन करने की आवश्यकता है, जिसके लिए t2 में कोई पंक्ति नहीं है जो निम्न दो स्थितियों t1.id = t2.id
और t2.Memo = 'myText'
दोनों को संतुष्ट करती है। मैं उसे कैसे कर सकता हूँ? मैंने join
का उपयोग करने की कोशिश की है, लेकिन यह पंक्ति का चयन करता है जो कुछ शर्तों को पूरा करता है, जबकि मुझे इसके विपरीत की आवश्यकता है।
3 जवाब
SELECT *
FROM t1
WHERE NOT EXISTS (SELECT 1
FROM t2
WHERE t2.id = t1.id
AND t2.Memo = 'myText')
इसे करने का एक तरीका LEFT JOIN
का उपयोग करना है:
select id
from t1
left join t2
on t1.id = t2.id and t2.Memo = 'myText'
where t2.id is null
मैं आपके प्रश्न को समझने में अच्छा नहीं हूँ:
आपका मतलब है कि t1.id EX2 में t2 से संबंधित t2.Memo <> 'myText' है?
SELECT t1.id FROM t1 JOIN t2
ON t1.id = t2.id
HAVING t1.id NOT IN (SELECT id FROM t2 WHERE Memo = 'myText');
या सभी t1.id या तो t2 या EXISTS में नहीं हैं, लेकिन मेमो <> 'myText'?
SELECT id FROM t1 WHERE id NOT IN (SELECT id FROM t2 WHERE Memo = 'myText');
संबंधित सवाल
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।