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