2011-11-29 6 views
1

に私は4つのフィールドを持つテーブルがあります。field1field2field3field4を、私は(field1field2field3)が存在する場合ではないが存在するレジスタを挿入したいです。構文「に...挿入場所ではない」CodeIgniterの

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `id_est` and `id_course` and `DATE` not in (select `id_estudiante`,' at line 1

  • がどのように変換することができます:このクエリで次のエラーが表示される理由を知り

    1. :私は二つのことをしたい

      INSERT INTO mytable (`id_est`, `id_course`, `date`,`nro`) 
      VALUES ('5','7','2020-06-11','') 
      where id_est and id_course 
          and date not in (select id_est, id_course, date from mytable) 
      

      私のクエリはこれですこのクエリはCodeIgniter構文に従っていますか?

      $data =array(
      ) 
      $this->db->insert('mytable', $data); 
      $this->db->where_is_not(); 
      

    感謝。フィールドid_estid_coursedateは重要であり、私は繰り返されません。

    明確化:id_estid_coursedatenro:私は次のフィールドとmytableにデータを挿入する必要があります。

    id_est   id_course   date   nro 
    1     1    date1   1 
    1     1    date2   3 
    1     1    date2   2 (this register is not insert because id_est=1 and id_course=1 and date2 is in my table) 
    
  • +0

    クエリからの値のnro – punit

    +0

    このリンクはあなたのために役立ちます:[http://stackoverflow.com/questions/6047149/subquery-in-codeigniter-active-record][1] [1]:http://stackoverflow.com/questions/6047149/subquery-in-codeigniter-active-record – punit

    答えて

    0

    1)id_estid_coursedatenro周り'年代を削除します。私はid_estid_coursedate(すべてのこれらの三つのフィールドが一意である)、例えばあることが必要です。

    2)$data = array('id_est'=>'5','id_course'=>'7','date'=>'2020-06-11','nro'=>'');

    +0

    あなたの答えをありがとう。1)今このエラーが表示されます:1064 - SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして、 'WHERE id_est and id_course'と 'DATE in not in(select id_estudiante、' 1行目...)の近くで使用する正しい構文を確認してください。2)私はそれを(id_est、id_course、date)に入れない方法を知りたいです。syntaxis codeigniter – cabita

    +0

    1)マニュアルをチェックしましたか? :)この 'どこに... 'はあなたの質問には存在しないので、私はあなたに何を求めているのか本当に分かりません。 2)別の方法で質問することはできますか?理解できません。 – Moyshe

    +0

    こんにちは、申し訳ありません、変更した後で質問を更新しました。私は英語ですみません。ご協力いただきありがとうございます。 – cabita

    0

    これを試してみてください:

    INSERT INTO mytable (`id_est`, `id_course`, `date`, `nro`) 
    SELECT '5','7','2020-06-11','' 
    WHERE NOT EXISTS (SELECT * FROM mytable 
    where id_est = '5' 
    and id_course = '7' 
    and date = '2020-06-11') 
    

    は、私は、コードイグナイタを知らないが、あなたが働いてクエリを得れば、あなたはそれを変換することができるはず

    +0

    あなたのアイデアは良いですが、次のエラーが表示されます:#1064 - SQL構文にエラーがあります。あなたのMySQLサーバーのバージョンに対応するマニュアルをチェックし、正しい構文がどこに存在しないのかを確認してください(SELECT * FROM mytable where id_est = 5 – cabita

    0
    INSERT INTO mytable (`id_est`, `id_course`, `date`, `nro`) 
    select '5','7','2020-06-11',"" 
    from dual 
    where NOT EXISTs (select nro from estudiante_curso_fallas where id_est =5 and id_course = 7 and date = '2020-06-11') 
    

    エラー#1064 - SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして、 'WHERE NOT EXISTS(SELECT * FROM mytable where id_est = 5

    はデュアルから使用しないためです。そして、サブクエリは同じテーブルである。あなたの助けのためのすべての

    おかげで。私はCodeIgniterのの構文でこのクエリを置く方法を検索します。4番目のフィールドから単一引用符( ')を削除し、あなたのシンテックス・エラーのため

    関連する問題