我认为我所追求的是相当基本的,但到目前为止,我还没有通过我的实验得到预期的结果。
我正在一个表上运行,其中一个已知行的值确定选择了同一个表中的哪些其他行。
在两个查询中说明我想要的内容:
SELECT id, gender, sport, age
FROM
person
WHERE
id = '123';
-- using id, gender, sport and age as inputs into the next query
SELECT id, age, sport, gender
FROM
person
WHERE
id != $1 AND looking_for_gender = $2 AND looking_for_sport = $3 AND min_age <= $4;
我在from子句中尝试了不同种类的连接和子查询,但是无法从单个查询中获得满意的结果。
提前感谢任何方向。
答案 0 :(得分:1)
您可以通过加入来执行此操作:
SELECT p.id, p.age, p.sport, p.gender
FROM person p cross join
(select * from person where id = 123
) p1
WHERE p.id <> p1.id AND p.looking_for_gender = p1.looking_for_gender AND
p.looking_for_sport = p1.looking_for_sport AND p.min_age <= p1.min_age;