【发布时间】:2021-03-25 12:34:10
【问题描述】:
盘子
| plate_id | date | product_id |
|---|---|---|
| 1 | 01-12-2020 | 101 |
| 2 | 01-12-2020 | 202 |
| 3 | 02-12-2020 | 101 |
| 4 | 02-12-2020 | 202 |
| 5 | 02-12-2020 | 303 |
生产
| order_id | date | product_id | cost |
|---|---|---|---|
| 1001 | 01-12-2020 | 101 | 10.95 |
| 1002 | 01-12-2020 | 202 | 19.00 |
| 1003 | 02-12-2020 | 101 | 11.50 |
| 1004 | 02-12-2020 | 202 | 20.05 |
| 1005 | 02-12-2020 | 303 | 17.00 |
我需要得到的查询结果是:
| plate_id | cost |
|---|---|
| 4 | 20.05 |
它们与pk和fk无关,
每个产品可以有不止一个生产成本。
我想我需要创建一些子查询来始终考虑两列:date 和 product_id
不幸的是,下面的查询给出了错误
SELECT pl.plate_id, pr.cost
FROM plates pl
JOIN (select * from production pr where pr.date=pl.date and pr.product_id=pl.product_id)
WHERE pl.product_id = 4;
【问题讨论】:
-
为什么是
20.05而不是19.00?您是按最晚日期还是按最高价格订购?
标签: sql postgresql subquery inner-join