असल में, कभी-कभी हम तालिकाओं में डेटा-संचालित संबंधों से बच सकते हैं और हमें उनसे जुड़ने की आवश्यकता होती है। यह शामिल होने की संभावनाओं को संभालने के लिए SELECT सूची में CASE स्टेटमेंट की मदद से किया जा सकता है। इसे समझने के लिए, हम तीन डेटा-संचालित तालिकाओं का उदाहरण ले रहे हैं, जिसका नाम 'Student_Detail' है, जिसमें निम्न डेटा है -
mysql> Select * from student_detail; +----+---------+ | Id | Name | +----+---------+ | 1 | Harshit | | 2 | Rahul | | 3 | Aarav | +----+---------+ 3 rows in set (0.00 sec)
अब, हमारे पास तीन टेबल हैं, जिसका नाम है 'Student_Harshit', 'Student_Rahul', 'Student_Aarav' जिसमें छात्रों के लिए क्रमश:हर्षित, राहुल और आरव की टिप्पणियां हैं। उनके पास निम्न डेटा है -
mysql> Select * from Student_Harshit; +----+-----------+ | Id | Remarks | +----+-----------+ | 1 | Excellent | +----+-----------+ 1 row in set (0.00 sec) mysql> Select * from Student_Rahul; +----+---------+ | Id | Remarks | +----+---------+ | 2 | Average | +----+---------+ 1 row in set (0.00 sec) mysql> Select * from Student_Aarav; +----+-------------+ | Id | Remarks | +----+-------------+ | 3 | Intelligent | +----+-------------+ 1 row in set (0.00 sec)
अब, निम्न क्वेरी इन डेटा-संचालित तालिकाओं को संभालेगी -
mysql> Select sd.id, sd.name, CASE name WHEN 'Harshit' THEN H1.Remarks WHEN 'Rahul' THEN R1.Remarks WHEN 'Aarav' THEN A1.Remarks ELSE 'Error' END as REMARKS FROM Student_detail AS sd LEFT JOIN Student_Harshit AS H1 ON sd.id = H1.id LEFT JOIN Student_Rahul AS R1 ON sd.id = R1.id LEFT JOIN Student_Aarav AS A1 on sd.id = A1.id; +----+---------+-------------+ | id | name | REMARKS | +----+---------+-------------+ | 1 | Harshit | Excellent | | 2 | Rahul | Average | | 3 | Aarav | Intelligent | +----+---------+-------------+ 3 rows in set (0.00 sec)