из пункта в случае MySQL

привет, что я хочу, чтобы использовать от cluse в случае MySQL, как показано ниже

у меня есть три таблицы tab1, tab2 и tab3
вкладка 1 хранит все поля
Вкладка 2 хранит данные, если значение eore равно 1
(eore — одно поле на вкладке 1, его значение может быть только 1 или 2)
если значение равно 2, то его данные хранятся на вкладке 3

что я хочу, чтобы получить все данные вкладки 1 с соответствующими данными в таблице 2 или 3

запрос похож на

select data1,dat2 case eore when '1'
then select data14,data54,data56 from tab2
when '2' then select data22,data34,data66
from table3 end from table1 order by id desc limit 50

что я пытался это как

 SELECT m.verify,m.mid,
CASE eore
WHEN '1' THEN c.mobile
WHEN '2' THEN d.gender
ELSE NULL END AS 'expose'
FROM epmem m
INNER JOIN empl c ON c.rid = m.mid
INNER JOIN comp d ON d.rid = m.mid
ORDER BY m.mid DESC
LIMIT 50

это не дает никаких результатов ………

1

Решение

Вы не можете использовать case таким образом, у вас может быть только один из caluse в каждом запросе. Оставьте соединение tab2 и tab3 на tab1 и используйте функцию if () или структуру case, чтобы решить, какие поля показывать.

select tab1.*,
if(eore=1,tab2.field1,tab3.field1) as field1,
if(eore=1,tab2.field2,tab3.field2) as field2,
...
from left join tab2 on tab1.id=tab2.id left join tab3 on tab1.id=tab3.id

Я использовал гипотетические поля для объединения таблиц, вам нужно использовать свои собственные критерии объединения.

0

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

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

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