2016-06-27 26 views
0

Meine Abfrage zeigt einen Fehler (ein Ausdruck wurde in der Nähe von DISTINCT erwartet), ich weiß nicht, wie es zu lösen, wenn ich die erste INSERT-Abfragezeile entfernen, werden Werte richtig ausgewählt, wenn ich füge ein, es zeigt Fehler an, irgendeine Hilfe könnte nützlich sein danke im Voraus.Mysql Syntaxfehler in einfügen Abfrage durch Auswahl unterschiedlicher Werte

INSERT INTO normal_days (user_id, department_id,designation_id,date_cur,clock_in,clock_out) 
    SELECT DISTINCT clo.user_id, design.department_id , uses.designation_id, clo.date,clo.clock_in, clo.clock_out 
    FROM clock clo 
    INNER JOIN holidays AS hol ON hol.date != clo.date 
    INNER JOIN users AS uses ON clo.user_id = uses.id 
    INNER JOIN designations AS design ON design.id = uses.designation_id 
    WHERE date(clo.created_at) = "2016-06-23" 
    AND TIMESTAMPDIFF(second,clo.clock_in, clo.clock_out) = 28800 
    AND !(DAYOFWEEK(clo.date)=7) 
    AND !(DAYOFWEEK(clo.date)=1); 
+0

Welche Fehler erhalten Sie? – Mureinik

+0

ein Ausdruck wurde in der Nähe von DISTINCT erwartet, unerkanntes Schlüsselwort in der Nähe von distinct. – Crysis

+0

Das ist kein mysql-Fehler und abgesehen davon, dass Sie nicht das tun, was Sie wahrscheinlich erwarten ('INNER JOIN holidays AS hol ON hol.date! = Clo.date' schließt keine Feiertage aus, wenn Sie mehr als 1 Zeile in' holidays' haben), Auf den ersten Blick sieht es für mysql syntaktisch gut aus. Verwenden Sie MySQL? Wenn ja, oder fügen Sie die eigentliche Fehlermeldung hinzu. Oder überprüfen Sie Ihren Client, vielleicht ist es etwas um diesen Code, den Sie verwenden, um diese Abfrage an mysql zu senden, und es ist tatsächlich ein Fehler Ihres Clients. – Solarflare

Antwort

0
INSERT INTO normal_days (user_id, department_id,designation_id,date_cur,clock_in,clock_out) 
SELECT clo.user_id, design.department_id , uses.designation_id, clo.date, clo.clock_in, clo.clock_out 
FROM clock clo 
LEFT JOIN holidays AS hol ON hol.date = clo.date 
INNER JOIN users AS uses ON clo.user_id = uses.id 
INNER JOIN designations AS design ON design.id = uses.designation_id 
WHERE date(clo.created_at) = "2016-06-23" 
AND TIMESTAMPDIFF(second,clo.clock_in, clo.clock_out) = 28800 
AND !(DAYOFWEEK(clo.date)=7) 
AND !(DAYOFWEEK(clo.date)=1) 
AND hol.date is NULL ;