2

次のコードを使用して、ボートテーブルから「ボート」を削除し、別のテーブルの関連する資格を削除しようとしています:

DELETE FROM tbl_boat, tbl_qualifications 
WHERE tbl_boat.BT_ID = '$bt_id' AND tbl_boat.BT_ID = tbl_qualifications.BT_ID;

問題は、次のエラーが表示されることです。

1064 - SQL 構文にエラーがあります。'WHERE tbl_boat.BT_ID = 113 AND tbl_boat.BT_ID = tbl_Near ' at line 2を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

これに関する助けに感謝します。

4

6 に答える 6

0

これを試して

DELETE uploadfeat,postfeeds,postcomment FROM uploadfeat INNER JOIN postfeeds INNER JOIN postcomment
WHERE uploadfeat.id=postfeeds.postID AND uploadfeat.id=postcomment.postID AND uploadfeat.id=23
于 2014-03-10T16:17:41.710 に答える
0

2 つの削除を実行する必要があります。

-- 最初にすべての関連付けを削除します ...
DELETE FROM tbl_qualifications WHERE BT_ID = '$bt_id';

-- ... 次に、ボートを削除します
DELETE FROM tbl_boat WHERE BT_ID = '$bt_id';

于 2012-09-13T13:15:28.653 に答える
0

そのはず

DELETE tbl_boat, tbl_qualifications FROM tbl_boat, tbl_qualifications 
WHERE tbl_boat.BT_ID = '$bt_id' AND tbl_boat.BT_ID = tbl_qualifications.BT_ID;

ところで、MySQL で複数のテーブルから削除する方法をご覧ください。

于 2012-09-13T13:16:04.130 に答える
0

2 つのテーブルがどのように関連しているかを MySQL に伝える必要があります。

DELETE tbl_boat, tbl_qualifications
FROM
    tbl_boat
    INNER JOIN tbl_qualifications USING (BT_ID)
WHERE
    tbl_boat.BT_ID = '$bt_id'
于 2012-09-13T13:15:03.217 に答える
0

INNER JOIN を試してみてください。

DELETE FROM tbl_boat
INNER JOIN tbl_qualifications
WHERE tbl_boat.BT_ID = '$bt_id' AND tbl_boat.BT_ID = tbl_qualifications.BT_ID;

私はこれをテストしていませんが、これはうまくいくと思います。

于 2012-09-13T13:14:40.173 に答える
0

これは間違いなく機能します:

DELETE a.*, b.*
FROM tbl_boat AS a
INNER JOIN tbl_qualifications AS b
    ON b.BT_ID = a.BT_ID
WHERE tbl_boat.BT_ID = '$bt_id';

また、BT_IDINTEGERタイプの場合は、 の周りから引用符を削除します$bt_id

于 2012-09-13T13:23:37.307 に答える