【问题标题】:How can i remove duplicate values from an Echoed table?如何从 Echoed 表中删除重复值?
【发布时间】:2013-04-12 02:25:16
【问题描述】:

我已经设法为三个表创建了一个 JOIN 查询,并且可以成功地将结果回显到一个回显表中,这是我的代码:

<?php 

$sql="SELECT a.product_id, a.Options_id, b.product_name, b.product_price, c.Options_name, c.Price_diff
FROM ProductOptions a
JOIN Products b ON a.product_id = b.product_id
JOIN Options c ON a.Options_id = c.Options_id
ORDER BY product_name DESC";

$result = mysql_query($sql);

if (!$result)

{

echo "An error occurred ".mysql_error();

exit;

}

echo "<table border=1>\n<tr><th></th><th bgcolor=\"#DFE8EC\">Name</th><th>Flavors & Size</th><th bgcolor=\"#DFE8EC\">Price</th><th>Price Difference</th><th bgcolor=\"#DFE8EC\"></th></tr>\n";

while ($line = mysql_fetch_array($result)) {


$name = $line["product_name"];

$price = $line["product_price"];

$options=$line["Options_name"];

$difference=$line["Price_diff"];


echo "<tr><td></td><td bgcolor=\"#DFE8EC\">$name</td><td>$options</td> <td bgcolor=\"#DFE8EC\">£$price</td><td>£$difference</td><td bgcolor=\"#DFE8EC\"></td></tr>\n";

}

echo "</table>\n";

?>

我的表格有效,但它显示 product_name 的重复条目,我不知道如何删除它们。

【问题讨论】:

  • 加入选项 c ON a.Options_id = c.Options_id GROUP BY product_name ORDER BY product_name DESC

标签: php join duplicates


【解决方案1】:

您必须在查询中使用GROUP BY 子句,如下所示:

$sql = "SELECT a.product_id, a.Options_id, b.product_name, b.product_price, c.Options_name, c.Price_diff
        FROM ProductOptions a
        JOIN Products b ON a.product_id = b.product_id
        JOIN Options c ON a.Options_id = c.Options_id
        GROUP BY product_name
        ORDER BY product_name DESC";

【讨论】:

  • 做 GROUP BY 有效,但它带走了我的一些尺寸和口味,只给了它一种,一种口味和一种尺寸。当某些产品有多种口味和尺寸时
  • 谁能进一步帮助我? GROUP BY 子句删除了重复的产品名称,但只为每个产品名称指定了 1 种风味或 1 种尺寸。
  • 只需添加您的组所需的字段,用逗号分隔它们。如果您的列名为“风味”,请添加 GROUP BY 产品名称、风味
  • 这不起作用,如果我添加 Options_name(这是列出风味和尺寸的地方),那么重复的产品名称会重新出现
猜你喜欢
  • 2019-12-08
  • 1970-01-01
  • 1970-01-01
  • 2018-10-01
  • 1970-01-01
  • 2012-05-19
  • 1970-01-01
  • 2019-09-22
相关资源
最近更新 更多