在Redmine中工作,我需要根据匹配的项目ID号和时间条目将数据从某些行复制(不移动)到其他行。
我已经包含了表“custom_values”的图表以及我对下面设计的理解(当前数据):
+----+-----------------+---------------+-----------------+-------+
| id | customized_type | customized_id | custom_field_id | value |
+----+-----------------+---------------+-----------------+-------+
| 1 | Project | 1 | 1 | 01 |
| 2 | TimeEntry | 1 | 4 | 01 |
| 3 | Project | 2 | 1 | 02 |
| 4 | TimeEntry | 2 | 4 | 02 |
| 5 | Project | 3 | 1 | 03 |
| 6 | TimeEntry | 3 | 4 | |
| 7 | Project | 4 | 1 | 04 |
| 8 | TimeEntry | 4 | 4 | |
+----+-----------------+---------------+-----------------+-------+
冒着过度简化的风险,
“id”= custom_values中每个条目的主键
“customized_type”=指定行引用的数据库表。
“customized_id”=指定先前在“customized_type”中指定的db表条目的主键。
“custom_field_id”=指定行引用的自定义字段。 Redmine管理员可以随意添加和删除自定义字段。
“value”=由指定的自定义字段中包含的数据 “custom_field_id”
在我的情况下,“值”中列出的值代表唯一的客户ID号。每次输入时,并不总是输入客户ID号。我需要将项目行中的客户编号复制到匹配的时间输入行。每次条目都有一个project_id字段。
到目前为止,这是我的错误SQL查询:
SELECT
custom_field_id,
custom_values.value AS 'CUSTOMER_NUMBER',
custom_values.customized_id AS 'PROJECT_ID_NUMBER',
custom_values.customized_type,
time_entries.comments AS 'TIME_ENTRY_COMMENTS'
FROM
redmine_tweaking.custom_values
LEFT JOIN
redmine_tweaking.time_entries ON custom_values.customized_id = time_entries.project_id
WHERE
custom_values.customized_type='Project' AND custom_values.custom_field_id=1;
到目前为止,我的查询允许我看到我将时间条目正确连接到匹配的项目,但这是我能够弄清楚的。换句话说,这个SQL语句并没有完全解决我的问题。
另外,即使它确实有效,我认为我铺设它的方式看起来像200磅的鸟粪。必须有更好/更优化的方法来做到这一点。
非常感谢任何帮助。我比较新,而且我已经花了好几个小时来解决这个问题。
更新:
好的,这是time_entries表:
+----+------------+---------+----------+-------+----------+-------------+------------+-------+--------+-------+---------------------+---------------------+
| id | project_id | user_id | issue_id | hours | comments | activity_id | spent_on | tyear | tmonth | tweek | created_on | updated_on |
+----+------------+---------+----------+-------+----------+-------------+------------+-------+--------+-------+---------------------+---------------------+
| 1 | 1 | 1 | 1 | .25 | test | 9 | 2015-11-04 | 2015 | 11 | 45 | 2015-11-04 08:18:12 | 2015-11-04 10:18:12 |
| 2 | 2 | 1 | 1 | .25 | test2 | 9 | 2015-11-04 | 2015 | 11 | 45 | 2015-11-04 09:18:12 | 2015-11-04 12:18:12 |
+----+------------+---------+----------+-------+----------+-------------+------------+-------+--------+-------+---------------------+---------------------+
与我第一次发布的原始表格相反,预期的输出会显示:
+----+-----------------+---------------+-----------------+-------+
| id | customized_type | customized_id | custom_field_id | value |
+----+-----------------+---------------+-----------------+-------+
| 1 | Project | 1 | 1 | 01 |
| 2 | TimeEntry | 1 | 4 | 01 |
| 3 | Project | 2 | 1 | 02 |
| 4 | TimeEntry | 2 | 4 | 02 |
| 5 | Project | 3 | 1 | 03 |
| 6 | TimeEntry | 3 | 4 | 03 |
| 7 | Project | 4 | 1 | 04 |
| 8 | TimeEntry | 4 | 4 | 04 |
+----+-----------------+---------------+-----------------+-------+