मैं एक होमवर्क प्रोजेक्ट पर काम कर रहा हूं और मैं एक डेटाबेस क्वेरी करने वाला हूं, जो शहर के नाम या हवाई अड्डे के कोड द्वारा उड़ानों का पता लगाता है, लेकिन flightsतालिका में केवल हवाई अड्डा कोड होते हैं, इसलिए यदि मुझे शहर से खोजना हो airportsमेज पर शामिल हों ।
एयरपोर्ट्स टेबल में निम्नलिखित कॉलम होते हैं: code, city
फ्लाइट टेबल में निम्नलिखित कॉलम होते हैं: airline, flt_no, fairport, tairport, depart, arrive, fare
कॉलम fairportऔर एयरपोर्ट कोड के लिए और सेtairport होते हैं ।
कॉलम और प्रस्थान और आगमन की तारीखों हैं। departarrive
मैं एक प्रश्न के साथ आया था जो पहले fairportकॉलम और कॉलम पर उड़ानों में शामिल होता है airports.code। मैच के लिए मुझे tairportपहले मैच में पिछले मैचों में एक और प्रदर्शन करना होगा।
SELECT airline, flt_no, fairport, tairport, depart, arrive, fare
FROM (SELECT * FROM flights
INNER JOIN airports
ON flights.fairport = airports.code
WHERE (airports.code = '?' OR airports.city='?')) AS matches
INNER JOIN airports
ON matches.tairport = airports.code
WHERE (airports.code = '?' OR airports.city = '?')
मेरी क्वेरी उचित परिणाम देती है और यह होमवर्क के उद्देश्य के लिए पर्याप्त होगा, लेकिन मैं सोच रहा हूं कि क्या मैं JOINकई कॉलमों पर कर सकता हूं ? मैं WHEREक्लॉज़ का निर्माण कैसे करूँगा ताकि यह प्रस्थान और गंतव्य शहर / कोड से मेल खाए?
नीचे एक "छद्म-प्रश्न" है, जिसे मैं स्वीकार करना चाहता हूं, लेकिन मुझे वाक्यविन्यास सही ढंग से नहीं मिल रहा है और मुझे नहीं पता कि airportsप्रस्थान और गंतव्य के लिए तालिका का प्रतिनिधित्व कैसे करें :
SELECT * FROM flights
INNER JOIN airports
ON flights.fairport = airports.code AND flights.tairport = airports.code
WHERE (airports.code = 'departureCode' OR airports.city= 'departureCity')
AND (airports.code = 'destinationCode' OR airports.city = 'destinationCity')
अपडेट करें
मैंने एसक्यूएल के इस दृश्य निरूपण को भी पाया कि एसक्यूएल स्टेटमेंट के निर्माण के बारे में एक सामान्य मार्गदर्शक के रूप में बहुत उपयोगी होने के लिए बयानों में शामिल हों !