[英]Inner join table in case condition MySql
我有一种情况,我想在满足条件时内部联接表。 我想要类似的东西
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
添加表格。 对于某些组织,我想显示唯一的价格。 但是,某些用户可以享受价格折扣。 因此,要向少数用户显示折扣。 因此,我想有条件地内部加入。
使用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>;
在这种情况下,请使用IF子句验证条件,然后继续执行INNER JOIN
查询。
我不确定,当您的条件不匹配时。 作为一个假人,我只是简单地选择一个
句法
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.