Aynı id, toplamı ile sql satırları birleştirin ve toplam güncellemek

1 Cevap php

Ben veritabanından satırları karşılaştırmak için bir php komut dosyası yazmak için çalışıyorum ve sonra miktarları o ürünün kimliği maçlar ekler. Cusotmer_id dayanarak

Örnek:

mydb.cart

id, customer_id, cart_id, product_id, qty, price

1, 0001000, 4545453, 20, 10, 12.99
2, 0001000, 7473432, 20, 2, 12.99

Result
3, 0001000, 7473432, 20, 12, 25.98

Bir önceki oturumda cart bilgileri birleştirmek için çalışıyor.

Herhangi bir öneri takdir,

Teşekkürler

1 Cevap

Muhtemelen sadece SQL yerine PHP yapabilirsiniz. Yeni sepeti satır güncellemek ve eskisini silin. Bu doğru MySQL sözdizimi, ancak aşağıdaki gibi bir şey olmalı eğer emin değil:

UPDATE cart SET qty = (
    SELECT SUM(qty) FROM cart c WHERE c.id = id 
    GROUP BY c.customer_id, c.product_id)
  WHERE EXISTS (
    SELECT 'x' FROM cart c2 
    WHERE c1.customer_id = c2.customer_id
    AND c1.product_id = c2.product_id
    AND c1.id < id);

DELETE FROM cart c1 WHERE EXISTS (
    SELECT 'x' FROM cart c2 
    WHERE c1.customer_id = c2.customer_id
    AND c1.product_id = c2.product_id
    AND c1.id < id);