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

时间:2018-11-09 04:11:36

标签: mysql

如何从此数据中查询:

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

请建议我如何查询?

1 个答案:

答案 0 :(得分:0)

您可以使用日历表加入:

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