MySQL
अग्रणी और संचालित तालिका को IN
. में स्विच नहीं कर सकता खंड। इसे 6.0
में ठीक किया जाएगा
।
अभी के लिए, आप इसे इस तरह फिर से लिख सकते हैं (एक JOIN
. की आवश्यकता है ):
SELECT i.*
FROM (
SELECT DISTINCT item_id
FROM item_attributes a
WHERE a.attribute_name = 'SomeAttribute'
AND a.attribute_value = 'SomeValue'
) ai
JOIN items i
ON i.id = ai.item_id
चूंकि आप EAV
. का उपयोग कर रहे हैं मॉडल आप (attribute_name, item_id)
पर एक अद्वितीय अनुक्रमणिका बनाना चाहते हैं इस मामले में आप एक सादे जुड़ाव का उपयोग कर सकते हैं:
SELECT i.*
FROM item_attributes ai
JOIN items i
ON i.id = ai.item_id
WHERE a.attribute_value = 'SomeValue'
AND a.attribute_name = 'SomeAttribute'