我有一个bills
表,其中包含column customer_type
和customer_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
答案 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个表中有类似的列,您可能需要重新构建数据库,以便仅在一个位置存储一种类型的信息。