2016-04-24 4 views
0

У меня есть таблица bills с column customer_type и customer_id полей.left join table name dynmicly form Основной запрос

Это customer_type говорит, если клиент находится в customers столе или в users столе или в suppliers таблице.

Мне нужно создать запрос с левым соединением в соответствии с customer_type.

select c.* from bills b 
left join ***b.customer_type*** c on c.id = b.customer_id 

ответ

1

Вы можете присоединиться все три с необходимым условием:

select c.*, u.*, s.* from bills b 
left join customers c on c.id = b.customer_id and b.customer_type = 'customers' 
left join users u on u.id = b.customer_id and b.customer_type = 'users' 
left join suppliers s on s.id = b.customer_id and b.customer_type = 'suppliers' 

Затем вы можете взять данные, соответствующие от результата.

Однако, если в этих трех таблицах есть похожие столбцы, вы можете захотеть реструктурировать базу данных, чтобы хранить только один тип информации в одном месте.

Смежные вопросы