SQL:获取产品的当前日期价格和产品代码

时间:2018-09-27 17:06:36

标签: sql postgresql

我有3张桌子,我需要列出产品代码及其当前价格。 产品表具有产品名称(字符串)和代码(整数),制造商表具有产品名称(字符串)和制造商代码(整数),定价表具有产品的制造商代码(整数),价格(数字)和日期(日期)。 除了基本知识之外,我在SQL方面没有太多经验,而且我真的无法弄清楚如何获得正确的清单。

1 个答案:

答案 0 :(得分:0)

我只是为您构建了一个示例,以防您需要学习:)

产品

+----+----------------+
| id |      name      |
+----+----------------+
|  1 | GFORCE TITAN   |
|  2 | GFORCE 770     |
|  3 | GFORCE 1060 TI |
+----+----------------+

制造商

+----+----------+
| id |   name   |
+----+----------+
|  1 | Gigabyte |
|  2 | Asus     |
|  3 | MSI      |
+----+----------+

价格

+----+-------+-----------------+------------+
| id | price | manufacturer_id | product_id |
+----+-------+-----------------+------------+
|  1 |  1000 |               1 |          1 |
|  2 |   600 |               1 |          2 |
|  3 |   400 |               2 |          2 |
|  4 |   300 |               3 |          3 |
+----+-------+-----------------+------------+

您应该查询以下内容:

SELECT p.price, m.name as manufacturer, pr.name as product
FROM Prices p
JOIN Manufacturer m ON p.manufacturer_id = m.id
JOIN Product pr ON p.product_id = pr.id
ORDER BY p.price DESC

结果将是:

+----+-------+--------------+----------------+
| id | price | manufacturer |    product     |
+----+-------+--------------+----------------+
|  1 |  1000 | Gigabyte     | GFORCE TITAN   |
|  2 |   600 | Gigabyte     | GFORCE 770     |
|  3 |   400 | Asus         | GFORCE 770     |
|  4 |   300 | MSI          | GFORCE 1060 TI |
+----+-------+--------------+----------------+
相关问题