मैं वास्तव में इसके लिए जॉइन की अनुशंसा नहीं करता - या यों कहें, मैं एक "semijoin की अनुशंसा करता हूं ", जो एक रिलेशनल-बीजगणित अवधारणा है जिसे सीधे SQL में व्यक्त नहीं किया जाता है। एक सेमीजॉइन अनिवार्य रूप से एक जॉइन है जहां आप केवल एक टेबल से रिकॉर्ड पुनर्प्राप्त करना चाहते हैं, लेकिन इस प्रावधान के साथ कि उनके पास एक अलग तालिका में संबंधित रिकॉर्ड हैं।
SQL संकेतन में, इस अवधारणा को अप्रत्यक्ष रूप से एक IN
खंड
, एक सबक्वेरी
के साथ :
SELECT key, value
FROM comments
WHERE key IN
( SELECT comment_key
FROM meta
WHERE value = 1
)
;
(MySQL वास्तव में आंतरिक रूप से एक सेमीजॉइन में अनुवाद करना समाप्त कर देगा - अनिवार्य रूप से एक प्रकार का पतित आंतरिक-जुड़ना - लेकिन IN
क्लॉज इसे रॉ एसक्यूएल में व्यक्त करने का स्वाभाविक तरीका है।)