Как получить значение из другой таблицы на основе разных условий таблицы соединений - PullRequest
0 голосов
/ 08 июня 2018

У меня есть три таблицы.

  1. customer - имя, адрес электронной почты

  2. history - id, идентификатор_пользователя, идентификатор_даты, дата

  3. участник - имя, адрес электронной почты

Я пытаюсь получить имя и адрес электронной почты, используя таблицу истории, если customer_id равен -1, тогда необходимо получить имя и адрес электронной почты из таблицы участников, иначеТаблица клиентов, подобная этой:

SELECT  * FROM history

left JOIN attendee ON attendee.id  = history.attendee_id AND history.customer_id= '-1'

left JOIN customer ON customer.id = history.customer_id AND history.customer_id != '-1'

WHERE history.id = '605';

Я могу сделать то же самое, используя union all, но не используя join

код union all, как показано ниже

select cus.name,cus.email from histroy
join customer cus on cus.id = history.customer_id and history.customer_id not in ('0','-1')
union all
select cus.name,cus.email from history
join attendee cus on cus.id = history.attendee_id and history.attendee_id not in ('0','-1')

Могу ли я написатьприведенный выше код с использованием соединения.

...