通过在 PostgreSQL 中映射多个值和条件来加入

JOIN by mapping multiple values and conditions in PostgreSQL

假设:

tbl_a:

id hobby   type
1  fishing man
2  movie   woman

tbl_b:

id hobby   type
1  game    boy
2  dance   girl

我想man=boy, woman=girl做连接操作

select a.type,a.hobby, b.hobby
from tbl_a a 
join tbl_b b
on a.type=b.type

结果

type  hobby   hobby
man   fishing game
woman movie   dance 

会发生吗?

是的,你可以这样做:

SELECT a.type, a.hobby, b.hobby
FROM tbl_a a
JOIN tbl_b b ON (a.type = 'man' AND b.type = 'boy') OR
                (a.type = 'woman' AND b.type = 'girl');

JOIN 条件只是一个 boolean 表达式,您可以指定要加入的任何条件,包括两个关系中的不同值('man'、'boy') 和单独的附加条件(按男女)。