चूंकि हम MySQL में INTERSECT क्वेरी का उपयोग नहीं कर सकते, हम IN ऑपरेटर का उपयोग करके INTERSECT क्वेरी को सिमुलेट करेंगे। इसे निम्न उदाहरण से समझा जा सकता है -
उदाहरण
इस उदाहरण में, हम दो टेबल Student_detail और Student_info ले रहे हैं जिनमें निम्न डेटा है -
mysql> Select * from Student_detail; +-----------+---------+------------+------------+ | studentid | Name | Address | Subject | +-----------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | | 150 | Rajesh | Jaipur | Yoga | | 160 | Pradeep | Kochi | Hindi | +-----------+---------+------------+------------+ 7 rows in set (0.00 sec) mysql> Select * from Student_info; +-----------+-----------+------------+-------------+ | studentid | Name | Address | Subject | +-----------+-----------+------------+-------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | | 165 | Abhimanyu | Calcutta | Electronics | +-----------+-----------+------------+-------------+ 6 rows in set (0.00 sec)
अब, WHERE क्लॉज के साथ IN ऑपरेटर का उपयोग करने वाली निम्न क्वेरी INTERSECT को सिमुलेट करेगी ताकि दोनों टेबल में मौजूद 130 से अधिक सभी 'studentid' मान लौटाए जाएं -
mysql> Select Student_detail.studentid FROM Student_detail WHERE student_detail.studentid >130 AND student_detail.studentid IN(SELECT Student_info.studentid FROM Student_info WHERE Student_detail.studentid > 0); +-----------+ | studentid | +-----------+ | 132 | | 133 | +-----------+ 2 rows in set (0.00 sec)