2017-11-02 15 views
-5

テーブルの列を更新したいとします。列をemptyに設定し、select文を実行します。更新することは可能ですか?

今私は

UPDATE issue_meters 
    SET remarks = '' 
    (SELECT ps.name 'Store name' 
         , im.meter_serial 'Meter Serial Number' 
         , u.username Issuer 
         , im.remarks Remarks 
        FROM issue_meters im 
        JOIN project_store ps 
         ON im.store_id = ps.id 
        JOIN user u 
         ON im.issuer = u.id 
       ) 

の下にそれは誤り

エラーコードの下に私を与えているようにやろうとしています:1064あなたは、あなたのSQL構文でエラーが発生しています。近くに使用する権利 構文については、ご使用のMariaDBサーバのバージョンに対応 マニュアルを確認してください「(PSを選択します。としてname 『店舗名』、 イム。meter_serialとして 『行1

でメーターのシリアル番号』、」

私は同じクエリでそれをしたいすべてのヘルプは非常に

+0

いいえあなたは一つのステートメントでこれを行うことはできません。あなたが達成しようとしていることを説明したのであれば、代替案を提案できるかもしれません。 –

+2

2つのクエリを使用するだけではどうですか? 2つのクエリの間に関連はありません。 – Martin

+0

@Strawberry、あなたは基本的にクエリを変更したようですが、列はもう空に設定されていません。そしてあなたは無効な部分を削除しました。 OPのコードをそのまま残しておきますか? – jeroen

答えて

0

はたぶん、あなただけのベース

SELECT ps.name 'Store name' 
          , im.meter_serial 'Meter Serial Number' 
          , u.username Issuer 
          , ifnull(im.remarks,'') Remarks 
         FROM issue_meters im 
         JOIN project_store ps 
          ON im.store_id = ps.id 
         JOIN user u 
          ON im.issuer = u.id 
を更新せずに、あなたのクエリにNULLをテストする必要があります
2

をいただければ幸いです

あなたは、クエリの間にセミコロンを使用することができます。

UPDATE `issue_meters` SET `remarks` = ''; 
SELECT ps.`name` AS 'Store name', 
     im.`meter_serial` AS 'Meter Serial Number' , 
     u.`username` AS 'Issuer' , 
     im.`remarks` AS 'Remarks' 
FROM `issue_meters` im 
INNER JOIN `project_store` ps ON im.`store_id` = ps.`id` 
INNER JOIN `user` u ON im.`issuer` = u.`id` 
+0

私の 'DB'インタフェースでは動作しますが、私のコードでは動作しません –

+0

トランザクションを使用できます。 –

+0

私は選択してから –

0

あなたは、2つのSQLコマンド

UPDATE issue_meters 
    SET remarks = '' ; 

を使用する必要があります
単一のクエリを使用してコマンドを実行することはできませんし、列名の別名のための単一引用符を使用すべきではありませんが、あなたは、スペースまたは予約と列名のエイリアスのbackticsが必要単語

SELECT ps.name `Store name` 
      , im.meter_serial `Meter Serial Number` 
      , u.username Issuer 
     , im.remarks Remarks 
    FROM issue_meters im 
    JOIN project_store ps ON im.store_id = ps.id 
    JOIN user u ON im.issuer = u.id 
    ; 
関連する問題