0

1つのテーブルのクエリに基づいて、2つのテーブルから削除する必要があります

テーブル:エンティティGUID:整数サブタイプ:整数time_created:整数(Unixタイムスタンプ)

テーブル:objects_entity guid:整数タイトル:テキスト

objects_entityのguidは、entities.guidへの外部キーです。

subtype = 17に基づいて両方のテーブルの関連レコードを削除する必要があり、time_createdはエンティティで14日より古い(したがって、関連オブジェクトも削除する)

私はSQLが非常に苦手で、例を見て次のように作成しました。

DELETE entities, objects_entity FROM entities a INNER JOIN objects_entity b on b.guid = a.guid AND a.subtype =17 AND a.time_created < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 14 DAY))

しかし、これはエラーになります:

#1109 - Unknown table 'entities' in MULTI DELETE

上記と同じselectステートメントが正しく機能するため、これは私を超えています。テーブルが存在します。

私の構文の何が問題になっていますか?どうもありがとう。

4

2 に答える 2

3

交換する必要があります

DELETE entities, objects_entity

DELETE a, b

aとでテーブルのエイリアスを作成しているためですb

于 2012-07-30T18:33:10.473 に答える
-1
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
tbl_name[.*] [, tbl_name[.*]] ...
FROM table_references
[WHERE where_condition]

また

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
FROM tbl_name[.*] [, tbl_name[.*]] ...
USING table_references
[WHERE where_condition]
于 2012-07-30T18:34:38.367 に答える