您好我正在運行一個查詢從多個表中檢索結果。合併/刪除重複的MySQL查詢結果
我的查詢從一個名爲「store_orders_items」的表中檢索訂單,並從另一個名爲「store_orders」的相應客戶詳細信息中檢索訂單。
但是,如果一個客戶有兩個訂單,則該查詢將通過客戶ID號選擇訂單兩次來檢索客戶詳細信息。
所以我得到了兩個訂單的細節,這是很好,但也是我不想要的客戶細節兩次。
如何調整我的查詢以檢索所有訂單,並且僅針對每個訂單的客戶詳細信息?
這裏的查詢到目前爲止:
"SELECT
store_orders.order_name,
store_orders.order_address,
store_orders.id,
store_orders.order_town,
store_orders.order_county,
store_orders.order_postcode,
store_orders.order_country,
store_orders.order_email,
store_orders.item_total,
product.name,
store_orders_items.sel_item_size,
store_orders_items.sel_item_color,
store_orders_items.sel_item_id,
store_orders.order_date,
product.price
FROM
store_orders_items
LEFT JOIN
store_orders
ON
store_orders_items.order_id = store_orders.id
LEFT JOIN
product
ON
store_orders_items.sel_item_id = product.id
WHERE
store_orders_items.order_id=$id "
下面是我使用的輸出什麼樣的一個基本的例子/回聲代碼:
while ($order = mysql_fetch_array($store_orders)){
$name = $order["name"] ;
$size = $order["sel_item_size"];
$color = $order["sel_item_color"];
$order_name = $order["order_name"];
$address = $order["order_address"] ;
$town = $order["order_town"] ;
$county = $order["order_county"] ;
$postcode = $order["order_postcode"] ;
$country = $order["order_country"] ;
$email = $order["order_email"] ;
$price = $order["price"];
$date = $order["order_date"];
$item = "<li>{$name}</li>" ;
$item .= "<li>{$color}</li>" ;
$item .= "<li>{$size}</li>" ;
$item .= "<li>{$price}</li>" ;
$item .= "<li>{$date}</li>" ;
$item .= "<li>{$order_name}</li>" ;
$item .= "<li>{$address}</li>" ;
$item .= "<li>{$town}</li>" ;
$item .= "<li>{$county}</li>" ;
$item .= "<li>{$postcode}</li>" ;
$item .= "<li>{$country}</li>" ;
$item .= "<li>{$email}</li>" ;
echo $item ;
}
爲什麼您只需要一次客戶資料?只需從第一行讀取它們,並在隨後的行中忽略它們。 –