[英]Duplication of results from MYSQL query
嗨,我有一个查询,它产生所需的内容,但是我在输出中得到重复的行,无法弄清楚为什么,每一行都出现两次。 有任何想法吗?
$query = "SELECT * FROM orders LEFT JOIN users ON orders.USER_ID = users.USER_ID
LEFT JOIN items ON items.CHECKOUT_ID = orders.CHECKOUT_ID ORDER BY
date_order DESC LIMIT 0,1000";
$result = mysqli_query($con, $query);
while($row = mysqli_fetch_array($result, MYSQL_ASSOC)){
$order_id = $row["ORDER_ID"];
$date_order = $row["date_order"];
$date_req = $row["delivery"];
$country = $row["country"];
$firstname = $row["name"];
$lastname = $row["surname"];
$email = $row["email"];
$size = $row["size"];
$total_cost = $row["total_cost"];
echo '<tr><td>' . $order_id . ' </td>' .
'<td>' . $date_order . '</td>' .
'<td>' . $date_req . '</td>' .
'<td>' . $country . ' </td>' .
'<td>' . $firstname . ' </td>' .
'<td>' . $lastname . ' </td>' .
'<td>' . $email . ' </td>' .
'<td>' . $size . ' </td>' .
'<td>€' . number_format($total_cost, 2, '.', '') . ' </td>' .
'<td style="text-align:right"><a href="xxxxxxx_Order_Details_Admin.php?id=' . $order_id . '">More Details</td>' .
'<td style="text-align:right"><a href="xxxxxxxx_Order_Details_print.php?id=' . $order_id . '">Print</td>' .
'</tr>';
您的查询应该为该行中的每个项目返回一行。 这是您所期望的吗? 如果期望每个用户一行或每个订单一行,那么您的查询错误。
从您要提取的字段中,我认为您不需要这些项目。 请尝试以下查询:
SELECT *
FROM orders LEFT JOIN
user
ON orders.USER_ID = users.USER_ID
ORDER BY date_order DESC LIMIT 0,1000
如果您仍在获取重复项(或者期望每一项都包含一行,则为重复行),那么您需要查看基础表以查看重复项来自何处。
将查询更改为:
SELECT DISTINCT o.ORDER _ID, o.date_order, ...
FROM orders o
LEFT JOIN users u
ON o.USER_ID = u.USER_ID
LEFT JOIN items i
ON i.CHECKOUT_ID = o.CHECKOUT_ID
ORDER BY date_order DESC LIMIT 0,1000
哦, 总是指定要返回的列。 使用*
使得调试更加困难。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.