在mysql中如何使用查询获取多条记录一条记录

4si2a6ki  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(473)

如何从这些数据中进行查询:

parking_place | number_of_month  | from_date | end_date  | monthly_unit_price
A             | 3                | 2018-01   | 2018-03   | 3000000

希望展示成果:

parking_place | month   | monthly_unit_price
A             | 2018-01 | 3000000
A             | 2018-02 | 3000000
A             | 2018-03 | 3000000

请建议我如何查询?

k4ymrczo

k4ymrczo1#

您可以使用日历表加入:

SELECT
    t.parking_place,
    t.month,
    t.monthly_unit_price
FROM
(
    SELECT '2018-01' AS month UNION ALL
    SELECT '2018-02' UNION ALL
    SELECT '2018-03'
) months
INNER JOIN yourTable t
    ON months.month BETWEEN t.from_date AND t.end_date
ORDER BY
    months.month;

请注意,最好存储表示每个月的实际有效日期文本。例如,不存储文本 '2018-01' ,您可以存储 2018-01-01 作为日期文字。

相关问题