में कहां और आंतरिक शामिल होने का उपयोग करते हुए मेरे पास तीन टेबल हैं।mysql
स्थानों
ID | NAME | TYPE |
1 | add1 | stat |
2 | add2 | coun |
3 | add3 | coun |
4 | add4 | coun |
5 | add5 | stat |
स्कूलों
ID | NAME
1 | sch1
2 | sch2
3 |sch3
school_locations
ID |LOCATIONS_ID |SCHOOL_ID
1 | 1 |1
2 | 2 |2
3 | 3 |3
यहाँ तालिका loc आयनों में आवेदन के सभी स्थान होते हैं। स्कूल के लिए स्थान आईडी के द्वारा बुलाए जाते हैं।
जब मैं क्वेरी का उपयोग
select locations.name from locations where type="coun";
इसके साथ प्रकार "देश"
नाम प्रदर्शित करता है लेकिन मैं locations.name प्रदर्शित करने के लिए जहां केवल school_locations प्रकार = "देश" करना चाहते हैं
मैं निम्नलिखित प्रश्नों का प्रयास किया, लेकिन कोई भी काम नहीं कर रहा है
select locations.name
from locations
where type="coun"
inner join school_locations
on locations.id=school_locations.location_id
inner join schools
on school_locations.school.id=schools.id;
और
select locations.name
from locations
inner join school_locations
on locations.id=school_locations.location_id
inner join schools
on school_locations.school.id=schools.id where type="coun";
प्रश्नों में एकाधिक आंतरिक जुड़ने का उपयोग करना संभव है, या कोई और तरीका है?
SELECT Locations.Name, Schools.Name
FROM Locations
INNER JOIN School_Locations ON School_Locations.Locations_Id = Locations.Id
INNER JOIN Schools ON School.Id = Schools_Locations.School_Id
WHERE Locations.Type = "coun"
आप स्कूल के लिए School_Locations के लिए स्थान का और उसके बाद School_Locations शामिल हो सकते हैं:
बैकटिक msql में की आवश्यकता है? –
नहीं, लेकिन मुझे उन्हें वहां रखना पसंद है, यह अजीब टेबल या कॉलम नामों (जैसे चयन, गिनती,% बी इत्यादि) के साथ समस्याओं से बचाता है और यह अधिक मूर्खतापूर्ण है – knittl
दुर्भाग्यवश, क्वेरी गैर-एएनएसआई-अनुपालन करता है , यदि आप किसी अन्य डेटाबेस में क्वेरी माइग्रेट करने का प्रयास करते हैं तो संभावित रूप से समस्याएं उत्पन्न होती हैं। पहचानकर्ताओं को सीमित करने का उचित तरीका "डबलक्वॉट्स" के साथ है, लेकिन MySQL डिफ़ॉल्ट रूप से इसका समर्थन नहीं करता है; आपको यह प्राप्त करने के लिए SQL_MODE में ANSI_QUOTES सेट करना होगा। बेशक यह आपके स्ट्रिंग शाब्दिक "देश" को गड़बड़ कर देता है, जिसे SQL_MODE को सिंगल कोट्स के साथ लिखा जाना चाहिए। – bobince