बस की सुविधा देता है कहते हैं कि के रूप मेंMySQL: एक बयान में 2 कॉलम के परिणामों का मेल
R1 R2
| 1 | | 5 |
| 2 | | 6 |
| 3 | | 7 |
| 4 | | 8 |
इस प्रकार मैं 2 परिणाम सेट है मैं एक ही सेट में इन परिणाम गठबंधन करने के लिए की जरूरत है, तो मैं की तरह कुछ होगा इस:
R3
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
वर्तमान में, मैं बहुत की तरह आ यूनिअन के साथ इस कर रहा हूँ:
SELECT c_1 AS result FROM table WHERE c_1=3 OR c_2=3
UNION
SELECT c_2 AS result FROM table WHERE c_1=3 OR c_2=3
असल में, मैं तालिका पर दो बार एक ही ऑपरेशन कर रहा हूं, हर बार अलग पंक्तियों को पुनः प्राप्त करना। क्या ऐसा करने के लिए मैं और अधिक कुशल तरीका कर सकता हूं? मुझे परिणाम को एक कॉलम में चाहिए क्योंकि यह IN की सीमा है। लंबे समय में, मैं क्या करने की जरूरत है इस
SELECT name FROM person WHERE person_id IN
(SELECT c_1 AS result FROM table WHERE c_1=3 OR c_2=3
UNION
SELECT c_2 AS result FROM table WHERE c_1=3 OR c_2=3)
है वहाँ यह सब खोजने के बारे में जाने के लिए एक बेहतर तरीका है? किसी भी और सभी मदद का स्वागत है।
एसक्यूएल एक
INNER JOIN
प्रदर्शन कर सकते हैं वांछित परिणाम, नहीं गणना पद्धति की घोषणा की। इसके लिए 'EXPLAIN' –कमांड का उपयोग करें, क्या आप' SELECT c_1 को r1, c_2 के रूप में r2 के रूप में उपयोग नहीं कर सकते ... '? साथ ही, क्या आप 'परिणाम' चर का उपयोग कर रहे हैं? – bozdoz
व्यक्तिगत रूप से जब भी संभव हो मैं आईएन का उपयोग करने से बचता हूं, जब तक कि मुझे पता न हो कि यह हमेशा एक छोटी सी तालिका में एक छोटा सा सेट होगा। 'आंतरिक शामिल' का उपयोग करके माइकल बर्कोस्की का जवाब मेरा पसंदीदा तरीका है। बस सुनिश्चित करें कि आपके पास चाबियों के रूप में उपयोग करने के लिए इच्छित सभी चीज़ों पर अनुक्रमणिका है या प्रदर्शन के लिए उचित विदेशी कुंजी सेट अप करें। – Levi