我有一种情况,我想在满足条件时内部联接表。我想要类似
SELECT * FROM table_1
CASE
WHEN some_condition THEN INNER JOIN table_2 ON some_other_condition
END
我已经阅读了许多参考资料和以前的StackOverflow答案。但是,那些不符合我的要求。
编辑:
Table 1
id | name | price
1 | aaa | 111
2 | bbb | 222
____________________
Table 2
id | discountedPrice | orgId
1 | 100 | org1
2 | 200 | org2
添加了表格。对于某些组织,我想显示唯一的价格。但是,某些用户可以享受价格折扣。因此,要向少数用户显示折扣。所以,我想有条件地内部加入。
答案 0 :(得分:1)
使用left join
。您不清楚要实际执行的操作,但是类似以下内容:
select t1.*, coalesce(t2.discounted_price, ?) as discounted_price
from table_1 t1 left join
table_2 t2
on <join conditions> and
<some condition>;
答案 1 :(得分:0)
在这种情况下,请使用IF子句验证条件,然后继续进行INNER JOIN
查询。
我不确定您的条件是否匹配。作为一个虚拟人,我只是简单地放置一个SELECT
语法
IF expression THEN
statements;
ELSE
else-statements;
END IF;
您可以在下面尝试
IF (some_condition to filter org) THEN
SELECT * FROM table_1 INNER JOIN table_2 ON some_other_condition
ELSE
SELECT * FROM table_1 ;
END IF