Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एसक्यूएल क्वेरी स्टेटमेंट

SELECT sid, 'Math' as subject, math as mark
FROM your_table
UNION ALL
SELECT sid, 'English' as subject, english as mark
FROM your_table
UNION ALL
SELECT sid, 'French' as subject, french as mark
FROM your_table

लेकिन आपकी समस्या का मूल कारण गलत डेटाबेस डिज़ाइन है। उन विषयों को पहले स्थान पर कॉलम नहीं होना चाहिए और आपके वांछित आउटपुट की तरह एक तालिका में संग्रहीत किया जाना चाहिए।

संपादित करें

तो यह क्या करता है?

SELECT sid, 'Math' as subject, math as mark
FROM your_table

sid लौटाता है कॉलम, एक "वर्चुअल" कॉलम हार्डकोडेड मान के साथ 'Math' जिसे subject . नाम दिया गया है . चूंकि आपने 'Math' . मान को स्टोर नहीं किया है कहीं न कहीं, इसे हार्डकोड किया जाना था। फिर अंत में यह कॉलम math . का भी चयन करता है mark . नाम का प्रयोग करते हुए बजाय। math के बीच अंतर नोट करें और 'Math' - एक कॉलम है और दूसरा सिंगल कोट्स के कारण स्ट्रिंग अक्षर है।

यह तीनों विषयों के लिए किया जाता है (यदि आपके पास चार विषय थे, तो आपको UNION में चार भागों की आवश्यकता होगी)

यूनियन सभी तीनों चयनों को एक ही क्वेरी में जोड़ती है। andr समाधान (जिसे किसी ऐसे व्यक्ति द्वारा अस्वीकार कर दिया गया है जो इसे नहीं समझता है) इसे स्पष्ट रूप से व्युत्पन्न तालिका (या इनलाइन दृश्य) में डालकर इसे और भी स्पष्ट करता है।

अलग-अलग हिस्से क्या कर रहे हैं यह देखने के लिए प्रत्येक चयन को अपने आप चलाएं।

भाग as mark एक "कॉलम उपनाम" कहा जाता है और एक ही नाम के कॉलम को एक जॉइन में अलग-अलग तालिकाओं से पुनर्प्राप्त करने के लिए भी इस्तेमाल किया जा सकता है और परिणाम सेट में अभी भी अद्वितीय नाम हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डाउनलोड की गई फ़ाइलों का IP पता mysql में डालें

  2. SQL कैसे करें एक से अनेक संबंधों का चयन करें और आउटपुट को मर्ज करें

  3. एक MySQL तालिका में विशेषताओं के रूप में निर्दिष्ट सामग्री के साथ एक्सएमएल आयात करें?

  4. मैं आईडी का उपयोग करके एकाधिक SQL तालिकाओं में कैसे शामिल हो सकता हूं?

  5. कंपोजिट इंडेक्स में अलग जॉइन क्लॉज