MySql — Динамический выбор таблицы с IF ELSE

MySQL получил прикрытие, если ELSE для динамического выбора таблицы?

ссылка на сайт здесь показано, ЕСЛИ ТО, ТО для значения, но как может, ЕСЛИ ТО / ЕСЛИ ДАЛЕЕ может быть достигнуто, чтобы выбрать таблицу как ниже:

Например, динамическая таблицаothertable

 SELECT t1.etc,t2.etc,othertable.etc

FROM table1 AS t1,table2 AS t2, IF(t1.value=3,table3,table4) AS othertable

WHERE othertable.table1_id = t1.id

0

Решение

Вы можете достичь чего-то подобного с помощью союза.

SELECT t1.* FROM table1 t1
JOIN table_a ta ON (...)
WHERE t1.value = 3
UNION ALL
SELECT t1.* FROM table1 t1
JOIN table_b tb ON (...)
WHERE t1.value = 2

Для каждой строки, где t1.value = 3, выполняется соединение с table_a, для каждой строки, где t1.value = 2, table_b объединяется. Союз складывает результаты вместе.

Вам просто нужно убедиться, что эти два условия являются взаимоисключающими. Если вы не можете этого гарантировать, вы можете избавиться от дубликатов в наборе результатов, используя UNION вместо UNION ALL.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector