SQLiteのSQLは、MySqlと同じ方法で完全に実装されているわけではありません。SQLite/MySQLの互換性の問題
SQL Error (1093): Table 'sorties' is specified twice, both as a target for 'UPDATE' and as a separate source for data
MySQLのクエリ:次のクエリでの私の問題は、彼らは互換性がないと私は、MySQLを条件if <DBMS> ... else
SQLiteのクエリ
UPDATE sorties SET state = '#'
WHERE `key` IN (
SELECT `key` FROM sorties
INNER JOIN reports AS r
ON r.sortieId=sorties.`key`);
は、エラーを回避したいということであり、(hereから適合)
SQLiteの上エラー:
SQLiteManager: Likely SQL syntax error: UPDATE sorties AS s SET s.state='#' WHERE s.
key
IN (SELECT t.sortieId FROM ( SELECT DISTINCT r.sortieId AS sortieId FROM reports AS r INNER JOIN sorties AS sort ON sort.key
=r.sortieId) AS t); [ near "AS": syntax error ] Exception Name: NS_ERROR_FAILURE Exception Message: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [mozIStorageConnection.createStatement]
私はこのクエリは均等に両方のシステム上で動作するようにする方法を見つけ出すことはできません!
私が持っているしたいすべてはそれがkey
がreports.sortieId
で見つけることができますときsorties
の各state
は「#」でなければならないこと、です。
多分これには別の方法がありますか?
は、最初のコマンドは、サブクエリでsorties
テーブルからkey
値を読み込み、それらのキー値は、外文でsorties
テーブルに存在するかどうかをチェックし、あなたに
大変ありがとうございます。時には表示されるよりずっと簡単です。 –