एक ही टेबल के दो कॉलम को WHERE क्लॉज में उपयोग करना दुर्लभ लेकिन संभव है। आमतौर पर इसका उपयोग स्वयं-संदर्भ (सेल्फ-रेफरेंस) तुलना के लिए होता है।
उदाहरण:
mysql> Select F_name, L_name
-> From Customer
-> where F_name = L_name;
Empty set (0.00 sec)
व्याख्या:
F_nameऔरL_nameएक ही टेबलCustomerके कॉलम हैं- शर्त
F_name = L_nameजांचती है कि पहला नाम और अंतिम नाम समान हैं - इस डेटा में ऐसा कोई रिकॉर्ड नहीं, इसलिए
Empty set
व्यावहारिक उपयोग केस:
1. सेल्फ-जॉइन स्थिति (हायरार्किकल डेटा):
-- मैनेजर और कर्मचारी एक ही टेबल में
SELECT e.name AS employee, m.name AS manager
FROM employees e
JOIN employees m ON e.manager_id = m.id;
2. एक ही टेबल में दो तारीख कॉलम की तुलना:
-- ऑर्डर जहां शिपिंग तारीख ऑर्डर तारीख से पहले है (डेटा गुणवत्ता जांच)
SELECT * FROM orders WHERE ship_date < order_date;
3. फ्लैग कॉलम की तुलना:
-- जहां दो बूलियन फ्लैग दोनों सत्य हैं
SELECT * FROM tasks WHERE is_completed = 1 AND is_approved = 1;
नोट: एक ही टेबल के दो कॉलम की तुलना में कोई विशेष सिंटैक्स नहीं - सामान्य WHERE col1 = col2 सिंटैक्स काम करता है।