Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

JOIN से एकाधिक शर्तों (AND) वाले रिकॉर्ड चुनें

सेल्फ-JOIN से एकाधिक शर्तें पूरी करने वाले रिकॉर्ड

एक ही टेबल में एकाधिक शर्तें (AND) पूरी करने वाले रिकॉर्ड खोजने के लिए सेल्फ-JOIN का उपयोग करें।

उदाहरण: टेबल और डेटा

mysql> CREATE TABLE selectPerson (
    -> PersonId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> PersonName VARCHAR(20),
    -> PersonFavouriteFruit VARCHAR(60)
    -> );
mysql> INSERT INTO selectPerson(PersonName, PersonFavouriteFruit) VALUES
('John', 'Banana'), ('John', 'Blackberry'), ('John', 'Blueberry'),
('Carol', 'Apple'), ('Carol', 'Avocado'), ('Carol', 'Banana'),
('Sam', 'Ackee'), ('Sam', 'Apple'), ('Sam', 'Apricots'), ('Sam', 'Banana');

डेटा

+----------+------------+----------------------+
| PersonId | PersonName | PersonFavouriteFruit |
+----------+------------+----------------------+
| 1        | John       | Banana               |
| 2        | John       | Blackberry           |
| 3        | John       | Blueberry            |
| 4        | Carol      | Apple                |
| 5        | Carol      | Avocado              |
| 6        | Carol      | Banana               |
| 7        | Sam        | Ackee                |
| 8        | Sam        | Apple                |
| 9        | Sam        | Apricots             |
| 10       | Sam        | Banana               |
+----------+------------+----------------------+

क्वेरी: जो Apple AND Banana दोनों पसंद करते हैं

mysql> SELECT tbl1.PersonName
    -> FROM selectPerson tbl1
    -> JOIN selectPerson tbl2 ON tbl1.PersonName = tbl2.PersonName
    -> WHERE tbl1.PersonFavouriteFruit = 'Banana'
    -> AND tbl2.PersonFavouriteFruit = 'Apple';

परिणाम

+------------+
| PersonName |
+------------+
| Carol      |
| Sam        |
+------------+

व्याख्या

  • tbl1 - 'Banana' पसंद करने वाली पंक्तियाँ
  • tbl2 - 'Apple' पसंद करने वाली पंक्तियाँ
  • JOIN ... ON tbl1.PersonName = tbl2.PersonName - समान नाम वाले व्यक्ति
  • WHERE - दोनों शर्तें पूरी

वैकल्पिक: GROUP BY + HAVING

SELECT PersonName
FROM selectPerson
WHERE PersonFavouriteFruit IN ('Apple', 'Banana')
GROUP BY PersonName
HAVING COUNT(DISTINCT PersonFavouriteFruit) = 2;

तुलना

  1. PowerToys से Windows 10 और 11 में अधिक कैसे करें PowerToys से Windows 10 और 11 में अधिक कैसे करें

    PowerToys Windows 10 और Windows 11 के लिए फ्री यूटिलिटीज का एक संग्रह है जिसका उद्देश्य अधिक उत्पादकता के लिए Windows अनुभव को सुव्यवस्थित करना है। PowerToys पहली बार Windows 95 के लिए लॉन्च हुआ, फिर Windows XP, और अब Windows 10 और 11 के लिए एक ओपन-सोर्स प्रोजेक्ट के रूप में मौजूद है। PowerToys आपको

  1. - C# में LINQ और लैम्ब्डा के साथ Join का उपयोग कैसे करें?

    इनर जॉइन केवल उन रिकॉर्ड्स को लौटाता है जो दोनों टेबल्स में मौजूद/मैच होते हैं। मल्टीपल टेबल्स पर कंडीशन्स के साथ जॉइन भी लागू किया जा सकता है। मल्टीपल कंडीशन्स पर जॉइन के लिए अनाम टाइप्स का उपयोग करें। दोनों दृष्टिकोण: मेथड सिंटैक्स vs क्वेरी सिंटैक्स 1. मेथड सिंटैक्स (लैम्ब्डा) new { // रिजल्ट

  1. - VPN क्या है और आपको एक का उपयोग क्यों करना चाहिए

    VPN के बारे में अधिक जानना चाहते हैं? इस सप्ताह के शो में हम बताते हैं कि इस शब्द का क्या अर्थ है, आपको एक की आवश्यकता क्यों है, VPN के लिए साइन अप कैसे करें, और आपको मुफ्त VPN से क्यों बचना चाहिए। इस सप्ताह हम जिन विषयों पर बात करते हैं वे यहां हैं: VPN क्या है? VPN प्रोटोकॉल समझाया गया कुछ बेहतर

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
विधिपठनीयताप्रदर्शनलचीलापन
सेल्फ-JOINमध्यमअच्छा (इंडेक्स के साथ)जटिल शर्तों के लिए
GROUP BY HAVINGसरलअच्छासेट-आधारित शर्तों के लिए
INTERSECTसरलMySQL 8.0+सेट ऑपरेशन