2017-03-16 2 views
0
INSERT INTO counters (REQUEST_ID, MODIFIED_DATE_WFM) 
SELECT 
si_id, MAX(modified_date) AS field 
FROM tt 
group by si_id 
    ON DUPLICATE KEY UPDATE 
MODIFIED_DATE_WFM = VALUES(modified_date) 

ERROR SQL (1054): Unknown column 'MODIFIED_DATE' in 'Feldliste'MAX() vs ON DUPLICATE KEY UPDATE

i`m Verwendung sub-Abfragen versucht:

select * from (SELECT 
    si_id, MAX(modified_date) AS field 
    FROM tt 
    group by si_id) sub1 

und Alias:

ON DUPLICATE KEY UPDATE 
MODIFIED_DATE_WFM = VALUES(field) 

Aber wählen:

SELECT 
    si_id, MAX(modified_date) AS field 
    FROM tt 
    group by si_id 

ist Arbeit

für den Test: FITS TABELLE:

CREATE TABLE `counters` (
     `REQUEST_ID` BIGINT(20) NULL DEFAULT NULL, 
     `MODIFIED_DATE_WFM` INT(11) NULL DEFAULT NULL, 
     UNIQUE INDEX `REQUEST_ID` (`REQUEST_ID`) 
    ) 
    COLLATE='utf8_general_ci' 
    ENGINE=InnoDB 
    ; 

zweite Tabelle:

CREATE TABLE `tt` (
    `si_id` BIGINT(20) NOT NULL, 
    `modified_date` INT(11) NOT NULL, 
    INDEX `si_id` (`si_id`) 
) 
COLLATE='utf8_general_ci' 
ENGINE=InnoDB 
; 

DATA:

INSERT INTO `tt` VALUES (2574604, 1486086672); 
INSERT INTO `tt` VALUES (2574604, 1487116221); 
INSERT INTO `tt` VALUES (2574604, 1487971423); 
INSERT INTO `tt` VALUES (2574604, 1488136028); 
INSERT INTO `tt` VALUES (2574604, 1488136324); 
INSERT INTO `tt` VALUES (2574604, 1488524248); 
INSERT INTO `tt` VALUES (2574604, 1488728989); 
INSERT INTO `tt` VALUES (2834403, 1488782168); 

Serverversion: 5.7.16 MySQL Community Server (GPL)

+1

So 'counters' Tabelle, die die' MODIFIED_DATE' Spalte nicht haben. Genau das berichtet der Fehler. Übrigens, es hat auch nicht die ID-Spalte. – zerkms

+0

'INSERT INTO-Zähler (REQUEST_ID, MODIFIED_DATE_WFM) ...' & c. – bishop

+0

@baao es wäre ein "Tippfehler", wenn sie 'MODIFIED_DATE_WFN' eingeben würden – zerkms

Antwort

1

Ihr Update in einem Update ist falsch. Versuchen Sie es mit diesem:

INSERT INTO counters (REQUEST_ID, MODIFIED_DATE_WFM) 
SELECT 
si_id, MAX(modified_date) AS `field` 
FROM tt 
group by si_id 
    ON DUPLICATE KEY UPDATE 
MODIFIED_DATE_WFM = VALUES(MODIFIED_DATE_WFM); 

prüfen: http://rextester.com/MCR40199

+0

Was ist das eine Logik? SEINE ARBEIT TY !!!! –

+0

Gern geschehen. : D @VladimirLenkov – baao

+0

Aber wie =) seine imposible) kann sein Fehler sein? –

Verwandte Themen