我的这个表包含以下列:Key,Type,Culture。
关键和文化是PK。
在查询执行之前我知道Key和Culture值。
select * from resources r where r.CULTURE = 'sk' and r.KEY = 'test';
但是我想执行一个选择,它会选择与Culture ='sk'和Key ='test'的记录具有相同类型的所有其他记录
答案 0 :(得分:2)
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 :(得分:0)
使用联接,可以解决性能问题。
SELECT r.*
FROM resources r
INNER JOIN resources r2
ON r.type = r2.type
WHERE r2.CULTURE = 'sk'
AND r2.KEY = 'test'