左连接表名称dynmicly形成主查询

时间:2016-04-24 13:30:06

标签: mysql

我有一个bills表,其中包含column customer_typecustomer_id个字段。

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 个答案:

答案 0 :(得分: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'

然后您可以从结果中获取相关数据。

但是,如果这3个表中有类似的列,您可能需要重新构建数据库,以便仅在一个位置存储一种类型的信息。