Union als Unterabfrage MySQL

Ich möchte eine Abfrage mit einer Union als Unterabfrage optimieren. Ich bin mir allerdings nicht sicher, wie ich die Abfrage konstruieren soll. Ich benutze MYSQL 5

Hier ist die ursprüngliche Abfrage:

SELECT  Parts.id 
FROM    Parts_Category, Parts 
    LEFT JOIN Image ON Parts.image_id = Image.id 
WHERE 
( 
    (
        Parts_Category.category_id = '508' OR 
        Parts_Category.main_category_id ='508'
    ) AND 
    Parts.id = Parts_Category.Parts_id 
) AND 
Parts.status = 'A' 
GROUP BY 
    Parts.id 

Was ich tun möchte, ist dies zu ersetzen( (Parts_Category.category_id = '508' OR Parts_Category.main_category_id ='508' ) trenne dich von der unten stehenden Gewerkschaft. Auf diese Weise kann ich die GROUP BY-Klausel löschen und gerade Spaltenindizes verwenden, die die Leistung verbessern sollen. Teile- und Teilekategorietabellen enthalten jeweils eine halbe Million Datensätze, daher wäre jeder Gewinn großartig.

(
    SELECT * FROM
    (
        (SELECT Parts_id FROM Parts_Category WHERE category_id = '508') 
        UNION 
        (SELECT Parts_id FROM Parts_Category WHERE main_category_id = '508')
    )
    as Parts_id
)

Kann mir jemand einen Hinweis geben, wie ich es umschreiben soll? Ich habe es stundenlang versucht, kann es aber nicht bekommen, da ich nur ziemlich neu in MySQL bin.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage