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

माता-पिता - एक ही टेबल के भीतर बाल संबंध

चूंकि आपके पास सीमित 4 स्तर हैं, इसलिए आपको रिकर्सन की आवश्यकता नहीं है (हालांकि एमएस एसक्यूएल सीटीई जैसे उपयोग करने में सक्षम होना आसान होगा)।

कुछ इस तरह:

SELECT
  t4.uid as child, 
  --t3.uid as parent,
  --t2.uid as grand_parent,
  --t1.uid as great_grand_parent,
  t1.parentid as great_great_grand_parent
FROM
  your_table_name t1

  inner join your_table_name t2
  on t2.parentid = t1.uid

  inner join your_table_name t3
  on t3.parentid = t2.uid

  inner join your_table_name t4
  on t4.parentid = t3.uin

where 
  t4.uid = '10007' -- your start node.

यदि आपको कई नोड्स के लिए ऐसा करने की आवश्यकता है, तो आपको इसे किसी ऐसी चीज़ से जोड़ना होगा जो आपके प्रारंभ नोड्स का चयन करती है, या उदाहरण के लिए उपरोक्त WHERE t4.uid = '10007' को बदलें। क्लॉज होना चाहिए WHERE t4.uid IN (SELECT DISTINCT uid FROM your_table_name)

यह स्वतंत्र रूप से किया गया था इसलिए टंकण के लिए क्षमा चाहते हैं।




  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. मेरे पास MySQL में तालिकाओं की संख्या गिनने के लिए क्वेरी

  3. आदेश sql ट्री पदानुक्रम

  4. संख्याओं के दो सरणियों की तुलना करें और php में डुप्लिकेट निकालें

  5. Mysql डालने से पहले सरणी मानों को साफ करना