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

मैं एसक्यूएल के साथ एक टेबल पैरेंट चाइल्ड रिलेशन का उपयोग करके एक पदानुक्रमित पेड़ की केवल एक पीढ़ी का चयन कैसे करूं?

यह वर्बोज़ और बदसूरत है और धीमा होगा, और यह 4 पीढ़ियों तक सीमित है, लेकिन मुझे नहीं पता कि इसे और कैसे किया जा सकता है।

SELECT person_name, parent_name FROM

    (SELECT child1.name AS person_name, parent1.name AS parent_name, '1' AS generation
    FROM people as child1
    JOIN people as parent1
    ON child1.parent_person_id = parent1.person_id AND child1.parent_person_id = child1.person_id

    UNION

    SELECT child2.name AS person_name, parent2.name AS parent_name, '2' AS generation
    FROM people as child2
    JOIN people as parent2
    ON child2.parent_person_id = parent2.person_id AND child2.parent_person_id <> child2.person_id AND parent2.parent_person_id = parent2.person_id

    UNION

    SELECT child3.name AS person_name, parent3.name AS parent_name, '3' AS generation
    FROM people as child3
    JOIN people as parent3
    ON child3.parent_person_id = parent3.person_id AND parent3.parent_person_id <> parent3.person_id
    JOIN people as grandparent1
    ON parent3.parent_person_id = grandparent1.person_id AND grandparent1.parent_person_id = grandparent1.person_id

    UNION

    SELECT child4.name AS person_name, parent4.name AS parent_name, '4' AS generation
    FROM people as child4
    JOIN people as parent4
    ON child4.parent_person_id = parent4.person_id AND parent4.parent_person_id <> parent4.person_id
    JOIN people as grandparent2
    ON parent4.parent_person_id = grandparent2.person_id AND grandparent2.parent_person_id <> grandparent2.person_id
    JOIN people as greatgrandparent
    ON grandparent2.parent_person_id = greatgrandparent.person_id AND greatgrandparent.parent_person_id = greatgrandparent.person_id
    ) AS tree

WHERE generation = ?



  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. MyBatis में एक से अनेक संबंध

  3. केकपीएचपी और एचएबीटीएम मॉडल सीमा त्रुटि

  4. सिम्फनी + सिद्धांत:बूलियन फ़ील्ड के डिफ़ॉल्ट मान के लिए सही YAML सिंटैक्स

  5. रेल 5 और रूबी 2.3.3 libmysql.dll लोड करने में विफल