6
更好的方式我有一个表命名items
如下:到条件优先SQL
id oId key value
1 0 color green
2 0 size 30
3 1 color red
4 2 color blue
以上行与oId=0
指定项目的默认值。
我需要选择所有key
,value
的项目与特定oId
其中将包括默认(OID = 0),如果特定key
和value
为oId
不存在。
例如,就第2项,它应该返回
id oId key value
1 0 size 30
2 2 color blue
我写了下面的查询:
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
有没有办法来优化上面的查询?
您所查询的是快2倍...谢谢。 – 2014-09-27 05:48:12