【问题标题】:Sort product data from multiple tables in MySQL从 MySQL 中的多个表中对产品数据进行排序
【发布时间】:2017-05-11 14:11:22
【问题描述】:

我有两张桌子。第一个:

Products table:

+----+-----------+
| id | name      | 
+----+-----------+
|  1 | Product 1 |
|  2 | Product 2 |
|  3 | Product 3 |
+----+-----------+

这包含产品名称,其他表包含不同产品变体的价格:

Products prices table:

+-----+------------+-------------+
| id  | product_id | price       |
+-----+------------+-------------+
|  5  | 1          |  12.00      | 
|  6  | 1          |  32.00      | 
|  11 | 1          |  56.00      | 
|  14 | 2          |  11         | 
|  44 | 3          |  12         |
+-----+------------+-------------+

我需要创建一个价格排序(最低和最高)

【问题讨论】:

  • 绝对有可能。你尝试了什么?
  • 只是在 php 中循环而不是对数组进行排序
  • 到目前为止,您还没有尝试过使用 SQL 吗?加入、排序、分组等?
  • 编写 SQL 查询并按价格 ASC 或 DESC 排序...另外,如何为相同的产品 ID 提供不同的价格?
  • SELECT p.`name` as Name, v.`price` as Price FROM `Products` p LEFT JOIN `Prices` v ON v.`product_id` = p.`id` ORDER BY v.`price` DESC;

标签: php mysql sorting


【解决方案1】:

是的,你可以,为此你必须使用 JOINORDER BY 子句。

例如:

select t1.id, t2.product_id t2.price FROM table1 t1 JOIN table2 t2 ON t1.id = t2.pid ORDER BY t2.price

Mysql join with order by reference guide

【讨论】:

    【解决方案2】:

    你可以试试这段代码……

     SELECT product_tbl.name, product_tbl.id, product_price.product_id, product_price.price FROM product_tbl, product_price WHERE product_tbl.id=product_price.product_id ORDER BY product_price.price DESC;
    

    【讨论】:

      【解决方案3】:

      示例查询:

       select t1.[id],t1.[name],t2.[price]
       from [yourtable1] t1
       Join [yourtable2] t2 on
       t1.[id]=t2.[product_id]
       Order by t2.[price] Asc;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多