आप बहुत करीब हैं। आपको अपनी कुंजी/मान तालिका में शामिल होने की आवश्यकता है 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
. के बजाय क्लॉज खंड।