按价格删除几乎重复的值

时间:2018-10-21 09:48:12

标签: php sql

我已经建立了一个在线商店,并且在数据库中,当前有两个订单。尽管如此,尽管如此,当我从PHP(7.0)调用数据库出现时,它们几乎成对存在两对,唯一的区别是数量。

我想按价格对值进行分组,并删除其中一对数量最少的值。另外,我处理的数量为1,在这种情况下,两者看起来相同。我尝试使用可以解决类似问题的方法对它们进行排序,但我无法使其正常工作-似乎只是删除了随机问题。

PHP enter image description here

SQL enter image description here

查询: SELECT customers.id AS customer_id, orders.id AS order_id, total_price, tracking, address, email, product_id, quantity, orders.created FROM orders, customers, order_items

1 个答案:

答案 0 :(得分:2)

在您的查询中,您正在做笛卡尔积,因为您没有关于这些表之间的匹配条件的标准:

SELECT
    customers.id AS customer_id
  , orders.id AS order_id
  , total_price
  , tracking
  , address
  , email
  , product_id
  , quantity
  , orders.created
 FROM orders
    , customers
    , order_items

您将需要声明每个表之间的关系:

SELECT
    customers.id AS customer_id
  , orders.id AS order_id
  , total_price
  , tracking
  , address
  , email
  , product_id
  , quantity
  , orders.created
 FROM    orders o
    JOIN customers c ON (o.customer = c.id)
    JOIN order_items i ON (o.id = i.order_id )

注意:我组成了一些列,这些列可能是明智的名称,可将表彼此连接。但是,正如您没有向我们展示的表定义只能是猜测。