选择查询和未知谓词值

时间:2011-07-13 09:25:35

标签: sql

我的这个表包含以下列:Key,Type,Culture。

关键和文化是PK。

在查询执行之前我知道Key和Culture值。

select * from resources r where r.CULTURE = 'sk' and r.KEY = 'test'; 

但是我想执行一个选择,它会选择与Culture ='sk'和Key ='test'的记录具有相同类型的所有其他记录

2 个答案:

答案 0 :(得分:2)

SELECT * FROM resources AS r WHERE r.type =
(SELECT type FROM resources s  where s.culture= 'sk' and s.key= 'test')

culturekey是PK,因此您只需为子查询的类型返回一个值。该结果用于获取具有该类型的所有行。如果子查询返回多个值,则可以使用IN代替=

答案 1 :(得分:0)

使用联接,可以解决性能问题。

SELECT r.*
FROM resources r
    INNER JOIN resources r2
        ON r.type = r2.type
WHERE r2.CULTURE = 'sk' 
AND r2.KEY = 'test'