繁体   English   中英

内部连接表以防万一MySql

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM