2016-06-27 9 views
0

私のクエリではエラーが表示されます(DISTINCTの近くに式があると思われます)。解決方法はわかりません。私はそれがエラーを示す挿入を追加する、任意の助けが前もって有用である可能性があります。別の値を選択して挿入クエリでMysqlの構文エラーが発生しました

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

あなたはどのようなエラーを得ていますか? – Mureinik

+0

DISTINCTの近くに式があると予想されました。 – Crysis

+0

これはmysqlエラーではなく、あなたがおそらく期待していることとは別に( '休暇中に1行以上の行がある場合、休日を除外することはありません。一見するとmysqlの構文上の問題はありません。 mysqlを使用していますか?はいの場合は、実際のエラーメッセージを追加します。または、あなたのクライアントをチェックしてください。このコードをmysqlに送るために使用するコードの周りにあるかもしれません。実際はクライアントのエラーです。 – Solarflare

答えて

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 ; 
関連する問題