我有一张mysql表
species
- id INT
- name LONGTEXT
- FloweringInitialMonth INT
- FloweringFinalMonth INT
有个警告如果 FloweringInitialMonth = 13
以及 FloweringFinalMonth = 13
这意味着这个物种一年四季都在开花。
有没有什么快速的方法来创建和填充一个新的关系表,就像这样:
flowering_species
- species_id INT
- month INT
结果如下:
species_id | month
2237 | 6
2237 | 7
2237 | 8
20 | 4
20 | 5
20 | 6
...
(另见:https://imgur.com/a/pzlbbec)
这样我就可以查询特定的物种开花月份或者特定月份开花的物种?
我甚至不知道如何开始做这件事,但我想这必须是一种方式来做它与mysql。。。
非常感谢您的帮助,因为我在这里完全不懂。
1条答案
按热度按时间vltsax251#
要解决这个问题,你需要创建一个月数表,然后
JOIN
那是给species
表中列出了每月开花的物种。在dbfiddle的演示中,我创建了一个VIEW
打电话flowering_species
然后您可以通过species_id
或者month
:示例查询:
输出(基于您发布的样本数据加上全年开花的测试物种):