如何计算另一列和另一个表中的日期?

问题描述:

我有2个表:如何计算另一列和另一个表中的日期?

表1:

|| *handtool_id* || *maintenance_interval_value* || *unit_unit_id* || *handtool_last_date_of_maintenance* || *handtool_next_date_of_maintenance* || 
||    1 ||       1 ||    5 ||       2014-11-07 ||          || 
||    2 ||       1 ||    6 ||       2014-11-07 ||          || 
||    3 ||       4 ||    4 ||       2014-11-07 ||          || 

表2:

|| *unit_id* || *unit_name* || *unit_value* || *unit_parent_id* || 
||   1 || Minute  ||   1 ||    1 || 
||   2 || Hour  ||   60 ||    1 || 
||   3 || Day   ||   1440 ||    1 || 
||   4 || Week  ||  10080 ||    1 || 
||   5 || Month  ||  32767 ||    1 || 
||   6 || Year  ||  525949 ||    1 || 

什么是正确的语法,从maintenance_interval_value计算handtool_next_date_of_maintenanceunit_unit_id?谢谢

+0

你不一定会存储的东西那条信息 – Strawberry 2014-11-29 15:18:25

+0

我的可能性是什么从间隔生成下一个维护日期我需要存储在数据库中? – 2014-11-29 15:24:26

+0

'unit_parent_id'的意义是什么? – Strawberry 2014-11-29 15:25:02

我不得不说,这是错误的,而且很容易混淆改变你的问题。你应该回滚这个问题给安德鲁琼斯11月3日回答,接受并提出他的答案,然后提出一个新问题。

这就是说,这似乎让你像你以后有什么(虽然你是如何来到位于32767数字和525949是超越我!?!)

SELECT * 
    , h.handtool_last_date_of_maintenance 
    + INTERVAL h.maintenance_interval_value 
    * u.unit_value MINUTE x 
    FROM handtools h 
    JOIN units u 
    ON u.unit_id = h.unit_unit_id; 
+0

谢谢你的男人。对不便之处,我向你保证,我不会在将来改变这个问题。但我没有任何其他的可能性。我的错 :/ – 2014-11-29 16:39:10

每当你插入到B,你想插入A.这是一个很好的使用MySQL触发器。我假设web_content_id的自动增量。

DELIMITER // 

CREATE TRIGGER new_language_id 
AFTER INSERT ON B 
FOR EACH ROW 
BEGIN 
    INSERT INTO A (web_content_const, i18n_language_codes_i18n_language_codes_id) 
     VALUES ('SERVICES_HEADING', @i18n_language_codes_id), 
     ('SERVICES_MAIN_TEXT', @i18n_language_codes_id), 
     ('SERVICES_1_HEADING', @i18n_language_codes_id), 
     ('SERVICES_1_TEXT', @i18n_language_codes_id); 
END;// 

DELIMITER ; 
+0

好的谢谢,但是当web_content_const值随时间增加时,我该怎么办?我必须为每个web_content_const添加行到触发器? – 2014-11-03 21:49:20

+0

有几种方法可以实现,但添加触发器可能是最简单的方法。另一种方法是创建一个具有不同值的表,并让触发器插入表中的每一行。对于一个以'val'作为你添加的列的表:'INSERT INTO A(web_content_const,i18n_language_codes_i18n_language_codes_id)SELECT val,@ i18n_language_codes_id FROM C' – 2014-11-03 21:54:07

+0

有没有交叉连接的方法? – 2014-11-03 22:09:00