Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu tenho esta query:
SELECT
`customers`.*,
COUNT(`orders`.`id`) as `orders_total`,
`last_order`.`id` as `last_id`,
`last_order`.`order_id` as `last_order_id`,
`last_order`.`date_added` as `last_date_added`
FROM `customers`
LEFT JOIN `orders` ON `orders`.`customer_id` = `customers`.`id`
LEFT JOIN `orders` as `last_order` ON `last_order`.`customer_id` = `customers`.`id`
GROUP BY `customers`.`id`
O que estou a tentar fazer é o seguinte, obter a lista de clientes, contar o total de encomendas deste cliente e obter também os dados da ultima encomenda deste cliente também...
Problemas:
Já pesquisei no google e encontrei montes de "soluções" algumas funcionam mas só retorna 1 registo :c
[sELECT customers.*,
COUNT(t.id) as orders_total,
orders.*
FROM
customers
JOIN orders as t ON (customers.id = t.customer_id)
JOIN orders ON (customers.id = orders.customer_id)
LEFT OUTER JOIN orders last_order ON (customers.id = last_order.customer_id AND
(orders.date_added < last_order.date_added OR orders.date_added = last_order.date_added AND orders.id < last_order.id))
WHERE last_order.id IS NULL;/code]
Esta query aqui faz o que pretendo, mas só retorna um registo.....
Eu sei que dá para fazer, pois eu já consegui fazer isso uma vez, mas já não me lembro de como consegui e já não tenho o código :\
Carregando comentários...