माय-एसक्यूएल में एक ट्रे के साथ सब-ट्रे
मेरे MYSQL में Database COMPANY
, मैं एक Table: Employee
पुनरावर्ती संघ के साथ हूं , एक कर्मचारी दूसरे कर्मचारी का मालिक हो सकता है। A self relationship of kind (SuperVisor (1)- SuperVisee (∞) )
।
तालिका बनाने की क्वेरी:
CREATE TABLE IF NOT EXISTS `Employee` (
`SSN` varchar(64) NOT NULL,
`Name` varchar(64) DEFAULT NULL,
`Designation` varchar(128) NOT NULL,
`MSSN` varchar(64) NOT NULL,
PRIMARY KEY (`SSN`),
CONSTRAINT `FK_Manager_Employee`
FOREIGN KEY (`MSSN`) REFERENCES Employee(SSN)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
मैंने टुपल्स (क्वेरी) का एक सेट डाला है:
INSERT INTO Employee VALUES
("1", "A", "OWNER", "1"),
("2", "B", "BOSS", "1"), # Employees under OWNER
("3", "F", "BOSS", "1"),
("4", "C", "BOSS", "2"), # Employees under B
("5", "H", "BOSS", "2"),
("6", "L", "WORKER", "2"),
("7", "I", "BOSS", "2"),
# Remaining Leaf nodes
("8", "K", "WORKER", "3"), # Employee under F
("9", "J", "WORKER", "7"), # Employee under I
("10","G", "WORKER", "5"), # Employee under H
("11","D", "WORKER", "4"), # Employee under C
("12","E", "WORKER", "4")
सम्मिलित पंक्तियों में ट्री-हायरार्किकल-रिलेशनशिप निम्नलिखित है :
A <---ROOT-OWNER
/|\
/ A \
B F
//| \ \
// | \ K
/ | | \
I L H C
/ | / \
J G D E
मैंने संबंध खोजने के लिए एक प्रश्न लिखा:
SELECT SUPERVISOR.name AS SuperVisor,
GROUP_CONCAT(SUPERVISEE.name ORDER BY SUPERVISEE.name ) AS SuperVisee,
COUNT(*)
FROM Employee AS SUPERVISOR
INNER JOIN Employee SUPERVISEE ON SUPERVISOR.SSN = SUPERVISEE.MSSN
GROUP BY SuperVisor;
और आउटपुट है:
+------------+------------+----------+
| SuperVisor | SuperVisee | COUNT(*) |
+------------+------------+----------+
| A | A,B,F | 3 |
| B | C,H,I,L | 4 |
| C | D,E | 2 |
| F | K | 1 |
| H | G | 1 |
| I | J | 1 |
+------------+------------+----------+
6 rows in set (0.00 sec)
[ प्रश्न ]
पूरा पदानुक्रमित पेड़ के बजाय, मुझे SUB-TREE
एक बिंदु (चयनात्मक) उदाहरण से चाहिए:
यदि इनपुट तर्क है B
तो आउटपुट नीचे के रूप में होना चाहिए ...
+------------+------------+----------+
| SuperVisor | SuperVisee | COUNT(*) |
+------------+------------+----------+
| B | C,H,I,L | 4 |
| C | D,E | 2 |
| H | G | 1 |
| I | J | 1 |
+------------+------------+----------+
कृपया इस पर मेरी सहायता करें। यदि क्वेरी नहीं है, तो संग्रहीत कार्यविधि मददगार हो सकती है।
मैंने कोशिश की, लेकिन सभी प्रयास बेकार थे!
It my experience
मुझे हमेशा विशेषज्ञ पक्षों से बेहतर जवाब मिला । और मुझे लगता है कि डेटाबेस एडमिनिस्ट्रेटर से सवाल पूछना बेहतर था। सभी मामलों में, मैं स्टैकओवरफ्लो और लोगों के लिए बहुत आभारी हूं जो यहां सक्रिय हैं। मुझे वास्तव में बहुत सी समस्या का समाधान मिला जो मुझे या किसी अन्य वेब को खोजने के लिए बहुत कठिन था।