product
、order_details
、 の3 つのテーブルがありorders
ます。
ユーザーが購入したすべての製品を表示する 1 つのクエリにそれらを結合したいと考えています。
これが私のコードです:
SELECT products.id AS id,
products.kode AS kode,
products.sub_kode AS sub_kode,
products.nama AS nama,
products.barcode AS barcode,
products.harga AS harga,
IFNULL(products.keterangan_kemasan, ' ') AS keterangan_kemasan,
IFNULL(products.keterangan_ukuran ,' ') AS keterangan_ukuran,
SUM(IFNULL(order_details.jumlah_pesanan_akhir,0)) AS jumlah,
IFNULL(order_details.jumlah_pesanan_akhir,0) AS jumlah_beli,
orders.idmember AS member
FROM products LEFT JOIN (orders,order_details)
ON (orders.id = order_details.idorder
AND order_details.product_kode = products.kode
AND order_details.product_subkode = products.sub_kode)
WHERE products.nama LIKE '%asdu%'
AND IFNULL(orders.idmember, 21376) = 21376
GROUP BY products.kode, products.sub_kode
ORDER BY IFNULL(order_details.jumlah_pesanan_akhir,0) DESC,
products.nama ASC
LIMIT 30;
何が起こっているかというと、コスチュームを購入したことがない場合、そのアイテムは表示されません. その間、私はそれらを表示したい。
これをクエリから削除すると、
AND IFNULL(orders.idmember, 21376) = 21376
すべてがうまく表示されます。ただし、他の人の注文履歴が表示されます。