我在数据库(sql)中有四个表:
客户表:
id
name
积分表:
id
name
count
customer_credit表(数据透视表):
customer_id
credit_id
expiry_date
消费者表:
id
customer_id
这是带有laravel的SPA应用程序(基于Web的)。 如何从consumers表接收(仅登录客户)记录,而customer_credit表中的条件是可用记录没有到期日期,因为我们可以计算剩余信用额。进一步说明,我们正在尝试收集泳池和健身房中客人的出入日志,我们希望在credits表中获得确切的customer_credit表ID的计数。
答案 0 :(得分:0)
第一个选择,使用Laravel Query Builder:
DB::table('consumers')
->select('consumers.*')
->join('customers', 'consumers.customer_id', '=', 'customers.id')
->join('customer_credit', 'customers.id', '=', 'customer_credit.customer_id')
->join('credits', 'customer_credit.credit_id', '=', 'credits.id')
->where('credits.count', '>', 0)
->where('customer_credit.expiry_date', '>=', date('Y-m-d'))
->get();
第二个选项,以使用Laravel Eloquent。如果您选择第二个并需要帮助,则应在此处共享您的模型结构。
也请阅读本主题以了解不同之处:Laravel Eloquent vs query builder - Why use eloquent to decrease performance