virturt mart テーブルに実際に 3 つのテーブルがあります。1 つは注文、もう 1 つはアイテム、もう 1 つは order_user_info で、ユーザー名を取得するためにorder_user_infoテーブルに参加する必要があります。
しかし、私が参加すると、結果情報が二重に表示されます。以下にクエリと結果について言及しましたが、二重の結果を回避する方法を教えてください
* JOIN FIRST NAME については、以下のクエリを使用しています *
LEFT JOIN `urbanite_virtuemart_order_userinfos` as Uinfo ON Uinfo.virtuemart_order_id=i.virtuemart_order_id
*完全なクエリ *
SELECT SQL_CALC_FOUND_ROWS o.created_on AS interval, CAST( i.`created_on` AS DATE ) AS created_on, Uinfo.`first_name`, o.`order_number`, SUM(DISTINCT i.product_item_price * product_quantity) as order_subtotal_netto, SUM(DISTINCT i. product_subtotal_with_tax) を order_subtotal_brutto として、COUNT(DISTINCT i.virtuemart_order_id) を count_order_id として、SUM(i.product_quantity) を product_quantity として FROM `urbanite_virtuemart_order_items` を i として LEFT JOIN `urbanite_virtuemart_orders` as o ON o.virtuemart_order_id=i.virtuemart_order_id Uinfo.virtuemart_order_id=i.virtuemart_order_id AND Uinfo.created_on = i.created_on AND Uinfo.virtuemart_user_id = o.virtuemart_user_id の Uinfo として LEFT JOIN `urbanite_virtuemart_order_userinfos` WHERE (`i`.`order_status` = "S") AND i.virtuemart_vendor_id = "63" AND DATE( o.created_on ) BETWEEN "2013-06-01 05:00:00" AND "2013-06-30 05 :00:00" GROUP BY 間隔 ORDER BY created_on DESC LIMIT 0、400
結果は以下のように参加せずに得ています
intervals | Created_on | order_no | order_subtotalnetto | order_subtotalbruto | count_order_id | product_quantity
2013-06-12 09:47:16 |2013-06-12 | 43940624 | 200.00000 | 200.00000 | 1 | 2
結果は、以下のように名の結合で得られます
intervals | Created_on | order_no | f_name | order_subtotalnetto | order_subtotalbruto | count_order_id | product_quantity
2013-06-12 09:47:16 |2013-06-12 | Fatin Bokhari | 43940624 | 200.00000 | 200.00000 | 1 | 4
名の結合なしで見ると、product_quantity = 2が表示されますが、結合すると値が2倍になり、個別に試しましたが、毎回製品数量= 1が表示されるため、このようには進みません
救助が必要です!