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

SQL में डायनेमिक कॉलम अपरिभाषित मान रखते हुए कथन का चयन करें

आप बहुत करीब हैं। आपको अपनी कुंजी/मान तालिका में शामिल होने की आवश्यकता है itemproperties एक बार प्रत्येक विशिष्ट कुंजी (संपत्ति) के लिए आपको पुनः प्राप्त करने की आवश्यकता होती है। बात यह है कि, आपको LEFT JOIN . का उपयोग करने की आवश्यकता है . सादा आंतरिक JOIN जॉइन मानदंड पूरा न होने पर आउटपुट पंक्ति को दबा देता है।

इसे आजमाएं।

SELECT i.ID as ItemID, i.Name as ItemName, 
       p1.Value AS Color, p2.Value AS Speed, p3.Value AS Price
  FROM items as i
  LEFT JOIN itemproperties AS p1 ON (i.ID=p1.ItemID) AND (p1.Name = 'Color')
  LEFT JOIN itemproperties AS p2 ON (i.ID=p2.ItemID) AND (p2.Name = 'Speed')
  LEFT JOIN itemproperties AS p3 ON (i.ID=p3.ItemID) AND (p3.Name = 'Price')

Name . का चयन करने वाले भाव मान (z.B. p3.Name = 'Price' ) अपने ON . में जाएं आपके WHERE . के बजाय क्लॉज खंड।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql.user की कॉलम संख्या गलत है। अपेक्षित 42, 44 मिला। तालिका शायद दूषित है

  2. PHP/MySQL के साथ फ़िल्टरिंग खोजें

  3. MYSQL से MYSQLI में अपडेट हो रहा है

  4. MySQL तालिका में स्तंभों की अधिकतम संख्या

  5. MySQL में अगला/पिछला रिकॉर्ड कैसे प्राप्त करें?