तो मेरे पास तीन समस्याएं हैं जो मेरी समस्या में शामिल हैं, 2 नियमित तालिकाओं और कई के लिए एक जॉइन टेबल में कई रिश्ते हैं। वे इस तरह दिखेगा:तालिका और एकाधिक मानों में शामिल होने के लिए एसक्यूएल क्वेरी
table1
--id
--data
table2
--id
--data
table1_table2
--table1_id
--table2_id
तो, मेरे सवाल का मैं कैसे क्वेरी कुछ table1 में एक आइटम के लिए table1_table2 में एक या अधिक मान होता है कि के लिए (एक में शामिल होने का उपयोग) होता है। उदाहरण के लिए:
Table 1
+----------+
|id | data |
+----------+
|1 | none |
+----------+
|4 | match|
+----------+
Table 2
+----------+
|id | data |
+----------+
|1 | one |
+----------+
|2 | two |
+----------+
table1_table2
+----------------------+
|table1_id | table2_id |
+----------------------+
|1 | 1 |
+----------------------+
|4 | 1 |
+----------------------+
|4 | 2 |
+----------------------+
मैं एक प्रश्न है कि तालिका 1 पंक्ति आईडी 4 से मेल खाते हैं, क्योंकि यह तालिका 2. से दोनों पंक्ति 1 और 2 के लिए शामिल होने के इस कृपया कुछ भी पूछने भ्रामक है, तो के माध्यम से एक लिंक है की जरूरत है।
शायद मैं थोड़ा अस्पष्ट था, मैं table1_table2 का उपयोग एक रूप में शामिल होने के रूप में नहीं कर रहा हूं। मुझे यकीन है कि यह मेज से 1 और 2 दोनों से मेल खाता है 2.
यहाँ अब तक मेरी क्वेरी है बनाने की जरूरत है ...
SELECT DISTINCT table1.id,
table2.data
FROM table1
LEFT JOIN table1_table2 ON table1.id = table1_table2.table1_id
LEFT JOIN table2 ON table2.id = table1_table2.table2_id
मैं एक की जरूरत है, जहां कि तालिका 1 में एक प्रविष्टि के लिए है कि कर देगा यह मैच दोनों 1 और 2 तालिका 2.
से उत्पादन मैं देख रहा हूँ होगा:
+---------------------+
|table1.id|table2.data|
+---------------------+
|4 |one |
+---------------------+
|4 |two |
+---------------------+
क्या आप एसक्यूएल सीख रहे हैं (यानी यह होमवर्क है?) यह आपके पिछले प्रश्नों में से एक के लिए एक बहुत ही स्पष्ट अनुवर्ती प्रश्न है (http://stackoverflow.com/questions/10726322/sql-join-using-a-join -table-से-रेल)। मुझे SO पर सीखने में कोई समस्या नहीं है लेकिन यदि आप हैं तो आप अपने प्रश्न [होमवर्क] को टैग करना चाहेंगे। – Tony
यह स्कूल के लिए नहीं है। – Red
हालांकि प्रश्न पिछले प्रश्न से संबंधित है, लेकिन यह वास्तव में एक ही सारणी का उपयोग नहीं कर रहा है। मैं उन टेबलों का नाम बदल रहा हूं जो मैं वास्तव में उपयोग कर रहा हूं। – Red