复杂查询存储过程或口才

时间:2020-09-04 17:34:18

标签: mysql eloquent

是否可以使用ORM Eloquent创建此查询?我不是口才专家……

SELECT
    users.id as user_id,
    sales.id as sales_id,
    stores.id as storeId,
    chainstores.id as chainstoreId,
    CONCAT(customers.firstname, ' ', customers.lastname) as name,
    users.name as seller,
    sales.cupom,
    sales.price,
    sales.redem_value,
    chainstores.name as chanstore,
    stores.name as store,
    IF(
       (SELECT balances.id FROM balances WHERE balances.chainstore_id = chainstores.id AND balances.customer_id = customers.id LIMIT 1),
       '0.00',
        (SELECT redeemrules.redeem FROM redeemrules WHERE redeemrules.chainstore_id = chainstores.id LIMIT 1)
     ) as balance,
    sales.created_at,
    sales.redemption_date
FROM customers
    INNER JOIN sales ON customers.id = sales.customer_id
    INNER JOIN users ON sales.user_id = users.id
    INNER JOIN chainstores ON chainstores.id = customers.chainstore_id
    INNER JOIN stores ON stores.id = customers.store_id
WHERE
    chainstores.id  = _chainstoreId AND
    stores.id       = _storeId AND 
    DATE(sales.created_at) = _day ORDER BY sales.created_at DESC;

关于性能,此查询根据“ where”参数而有所不同,创建存储过程并仅使用Eloquent进行调用是否可行,还是可以仅使用它创建这些类型的查询?

我有这些变化:

MONTH(sales.created_at) = MONTH(_month) 
AND YEAR(sales.created_at) = YEAR(_month) 
ORDER BY sales.created_at DESC;

YEAR(sales.created_at) = YEAR(_year) 
ORDER BY sales.created_at DESC;

表格

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

0 个答案:

没有答案