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

क्लोजर टेबल का उपयोग करते समय भाई-बहन के रिकॉर्ड प्राप्त करने के लिए मैं किस क्वेरी का उपयोग करूंगा?

किसी दिए गए नोड के भाई-बहनों का पूर्वज एक ही होगा। हालांकि, इसमें "1" के साथ-साथ आपकी सूची भी शामिल होगी:

select t.*
from table t 
where t.ancestor = (select ancestor from table t2 where t.id = 2);

आपकी तालिका में, मुझे यकीन नहीं है कि ancestor . के लिए इसका क्या अर्थ है? descendant . के समान होने के लिए . लेकिन, मुझे लगता है कि निम्नलिखित वह प्रश्न है जो आप चाहते हैं:

select t.*
from table t 
where t.ancestor = (select ancestor from table t2 where t2.id = 2) and
      t.ancestor <> t.descendant and
      t.id <> 2;

संपादित करें:

आप इसे स्पष्ट . के रूप में कर सकते हैं इस तरह शामिल हों:

select t.*
from table t join
     table t2
     on t.ancestor = t2.ancestor and
        t2.id = 2 a
where t.id <> 2 and
      t.ancestor <> t.descendant;

नोट:मैंने t.id <> 2 . शर्त भी जोड़ी है इसलिए "2" को स्वयं का भाई नहीं माना जाता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अमान्य तर्कों ने डैग के लिए त्रुटि पारित की जो एयरफ्लो का उपयोग करके mysql डेटा को बिगक्वेरी में लोड करती है

  2. json_encode कुछ भी वापस नहीं कर रहा है

  3. Django ORM में डीबी से जन्म वर्ष लाने के दौरान, जन्म वर्ष से आयु सीमा में है या नहीं, इसकी गणना कैसे करें?

  4. CryptDB - प्रॉक्सी से कनेक्ट नहीं हो सकता (ERROR 1105 (HY000):(प्रॉक्सी) सभी बैकएंड नीचे हैं)

  5. वर्डप्रेस में मेटा कुंजी और मेटा_वैल्यू क्वेरी