我有這張表的列:Key,Type,Culture。選擇查詢和未知謂詞值
重點和文化是PK。
我知道查詢執行前的Key和Culture值。
select * from resources r where r.CULTURE = 'sk' and r.KEY = 'test';
但我想執行select,這將與同類型與文化=「SK」和密鑰=「測試」
我有這張表的列:Key,Type,Culture。選擇查詢和未知謂詞值
重點和文化是PK。
我知道查詢執行前的Key和Culture值。
select * from resources r where r.CULTURE = 'sk' and r.KEY = 'test';
但我想執行select,這將與同類型與文化=「SK」和密鑰=「測試」
SELECT * FROM resources AS r WHERE r.type =
(SELECT type FROM resources s where s.culture= 'sk' and s.key= 'test')
culture
記錄還可以選擇其他所有記錄和key
都是PK,所以你只能爲你的子查詢返回一個類型值。該結果用於獲取具有該類型的所有行。如果子查詢將返回多個值,則可以使用IN
而不是=
。
+1不要忘記在這個查詢中輸入'type'。 – Tomalak
我想加入會更糟? – user256034
使用連接,它可以解決性能問題。
SELECT r.*
FROM resources r
INNER JOIN resources r2
ON r.type = r2.type
WHERE r2.CULTURE = 'sk'
AND r2.KEY = 'test'
將執行更好,然後這個http://stackoverflow.com/questions/6676783/select-query-and-unknow-predicate-value/6676822#6676822? – user256034
測試一下吧!這取決於索引,統計... –
將'KEY'作爲字段名是不好的。這是大多數RDBMS中的保留字。 –