2

単純なクエリで問題が発生している:

DELETE FROM t_meter_value mv
 INNER JOIN t_channel c ON mv.t_channel_id = c.id
      WHERE (c.t_device_device_address = 16777216 OR 
             c.t_device_device_address = 33619968)
        AND c.t_channelspec_channel_address NOT IN
            (256, 257, 259, 263, 261, 326, 271, 281, 273, 32778);

内部で構文エラーが発生します。理由はわかりません。selectバリアントを使用すると、正常に動作します。

4

1 に答える 1

5

代わりに、次を試してください。

delete mv from t_meter_value mv
inner join t_channel c on mv.t_channel_id = c.id
where (
    c.t_device_device_address = 16777216 or 
    c.t_device_device_address = 33619968
  ) and 
  c.t_channelspec_channel_address not in (
    256, 257, 259, 263, 261, 326, 271, 281, 273, 32778
  );

と の間にエイリアスmvが追加されていることに注意してください。deletefrom

これは、レコードを削除する必要があるテーブルを示しています... を使用して、他のテーブルからレコードを削除するオプションもありますdelete c from

于 2012-12-20T18:43:19.237 に答える