Внутренний соединительный стол в случае состояния MySql - PullRequest
0 голосов
/ 25 января 2019

У меня есть сценарий, в котором я хочу присоединиться к таблице, когда она удовлетворяет условию.Я хочу что-то вроде

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

Добавлены таблицы.Для некоторых организаций я хочу показать единственную цену.Но у некоторых пользователей есть ценовая скидка.Итак, хочу показать скидку нескольким пользователям.Итак, я хочу внутреннее соединение условно.

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Используйте 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>;
0 голосов
/ 25 января 2019

В этом случае используйте условие 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...