6
Mam tabeli o nazwie items
następująco:lepszy sposób uprzywilejowania stan sql
id oId key value
1 0 color green
2 0 size 30
3 1 color red
4 2 color blue
Przede wierszy z oId=0
określa domyślne wartości elementów.
muszę zaznaczyć cały key
, value
z elementu ze szczególnym oId
który obejmie domyślne (OID = 0), jeśli konkretnego key
i value
dla tego oId
nie istnieje.
Na przykład. W pozycji 2, powinien on powrócić
id oId key value
1 0 size 30
2 2 color blue
Pisałem następujące zapytanie:
SELECT * FROM items AS i
WHERE i.oId=0 AND
i.key NOT IN (SELECT key FROM items WHERE oId=2)
UNION ALL
SELECT * FROM items WHERE oId=2
Czy istnieje sposób, aby zoptymalizować powyższej kwerendy?
Zapytanie jest 2 razy szybciej ... dzięki. –