2013-08-27 29 views
-1

表1遞減使用多個表以及將所述值轉換成一個

'edb_actual_data_id', 'bigint(20) unsigned', 'NO', 'PRI', '', 'auto_increment' 
'meter_parameter_type_map_id', 'int(10) unsigned', 'NO', 'MUL', '', '' 
'date_time', 'datetime', 'NO', 'MUL', '', '' 
'input_value', 'double', 'NO', '', '', '' 
'input_unit_id', 'int(10) unsigned', 'NO', 'MUL', '', '' 
'output_value', 'double', 'NO', '', '', '' 
'output_unit_id', 'int(10) unsigned', 'NO', 'MUL', '', '' 
'has_been_processed', 'tinyint(1)', 'NO', 'MUL', '', '' 

表2降序

'meter_parameter_type_id', 'int(10) unsigned', 'NO', 'PRI', '', 'auto_increment' 
'name', 'varchar(50)', 'NO', 'UNI', '', '' 
'unit_id', 'int(10) unsigned', 'NO', 'MUL', '', '' 
'is_negative_value', 'tinyint(1)', 'NO', '', '', '' 

表3降序

'meter_parameter_type_map_id', 'int(10) unsigned', 'NO', 'PRI', '', 'auto_increment' 
'meter_id', 'int(10) unsigned', 'NO', 'MUL', '', '' 
'meter_parameter_type_id', 'int(10) unsigned', 'NO', 'MUL', '', '' 
'min', 'double', 'NO', '', '', '' 
'max', 'double', 'NO', '', '', '' 
'meter_thread_id', 'int(10) unsigned', 'NO', 'MUL', '', '' 
'meter_parameter_name', 'varchar(100)', 'NO', '', '', '' 
'baselineEnabled', 'tinyint(1)', 'NO', '', '', '' 
'meter_parameter_type_map_transalation_id', 'int(10) unsigned', 'NO', 'MUL', '', '' 

表4降序

'meter_id', 'int(10) unsigned', 'NO', 'PRI', '', 'auto_increment' 
'name', 'varchar(100)', 'NO', 'MUL', '', '' 
'parent_id', 'int(10) unsigned', 'YES', 'MUL', '', '' 
'building_id', 'int(10) unsigned', 'NO', 'MUL', '', '' 
'meter_type_id', 'int(10) unsigned', 'NO', 'MUL', '', '' 
'add_to_parent', 'tinyint(1)', 'NO', '', '', '' 
'meter_group_id', 'int(10) unsigned', 'YES', 'MUL', '', '' 

表5降序

'Time_Stamp', 'datetime', 'YES', '', '', '' 
'Meter_ID', 'int(10) unsigned', 'YES', '', '', '' 
'Address', 'int(10) unsigned', 'YES', '', '', '' 
'Value', 'double', 'YES', '', '', '' 

表6降序

'ID', 'int(10) unsigned', 'NO', 'PRI', '', 'auto_increment' 
'NAME', 'varchar(45)', 'NO', 'UNI', '', '' 
'GROUP_ID', 'int(10) unsigned', 'NO', 'MUL', '', '' 
'STANDARD', 'tinyint(1)', 'NO', '', '', '' 

這些是我有6個表格的說明。我需要使用表2到表5中的表格並插入到表格1中。

我很困惑這些表的加入。

將input_value,output_value表1必須從值記載於表5.拾取

input_unit_id,output_unit_id表1必須從ID表6拾取其中id表6 = UNIT_ID在表2

請任何人告訴我,我該怎麼做。

我試過下面的查詢,但我很困惑我提供什麼連接。

INSERT INTO edb_actual_data 
      (meter_parameter_type_map_id, 
      date_time, 
      input_value, 
      input_unit_id, 
      output_value, 
      output_unit_id, 
      has_been_processed) 
SELECT t2.meter_parameter_type_map_id, 
     t1.time_stamp, 
     t1.value, 
     t3.id, 
     t1.value, 
     t3.id 
FROM `eb1_remote`.`eb1_test1` t1 
     INNER JOIN `siruseri`.`meter_parameter_type_map` t2 
     INNER JOIN `siruseri`.`meter` t4 
       ON t4.meter_id = t1.meter_id 
     INNER JOIN `siruseri`.`meter_parameter_type` t5 
     INNER JOIN `siruseri`.`unit` t3 
       ON t3.id = t5.unit_id; 
+0

考慮提供適當的DDL和/或sqlfiddle,並告訴我們你都希望你已經嘗試過什麼,什麼。 – Strawberry

+0

我已經添加了我的查詢,我非常困惑與我必須使用的連接。好心的建議..我非常努力地嘗試,當我無法理解,我想在這裏發佈它。解釋會更混亂,所以我把所有的東西都放進去了 – user1896796

+0

我只是不想穿過引號的海洋。 – Strawberry

回答

0

如果您連接兩個表格,則必須選擇兩個表格都具有的標識符。 ,你也得給正確的名稱,以您的選擇查詢:

INSERT INTO edb_actual_data 
      (meter_parameter_type_map_id, 
      date_time, 
      input_value, 
      input_unit_id, 
      output_value, 
      output_unit_id, 
      has_been_processed) 
SELECT t2.meter_parameter_type_map_id, 
     t1.time_stamp AS date_time, 
     t1.value  AS input_value, 
     t3.id   AS input_unit_id, 
     t1.value  AS output_value, 
     t3.id   AS output_unit_id 
FROM `eb1_remote`.`eb1_test1` t1 
     INNER JOIN `siruseri`.`meter_parameter_type_map` t2 
       ON t1.meter_parameter_type_id = t2.meter_parameter_type_id 
     INNER JOIN `siruseri`.`meter` t4 
       ON t4.meter_id = t1.meter_id 
     INNER JOIN `siruseri`.`meter_parameter_type` t5 
       ON t5.Meter_ID = t3.meter_id 
     INNER JOIN `siruseri`.`unit` t3 
       ON t3.id = t5.unit_id; 
+0

這些?是問題。沒有其他表格列與這些相同。 – user1896796

+0

井表2有meter_parameter_type_id,所以你可以加入這個。 (見編輯) –

+0

meter_id可以在表5和表3中找到 –

相關問題