2010-12-08 10 views
1

この:mysqlの削除構文とselectとの違いは何ですか?

SELECT * 
    FROM tbl_playlists, tbl_playlistsongs 
WHERE tbl_playlists.playlist_id = tbl_playlistsongs.playlist_id 
    AND tbl_playlists.playlist_id = 1 

は...何の問題も機能しません。しかし:

DELETE from tbl_playlists, tbl_playlistsongs 
WHERE tbl_playlists.playlist_id = tbl_playlistsongs.playlist_id 
    AND tbl_playlists.playlist_id = 1 

...私には構文エラーがあります。 SELECT * v DELETE以外は同じです。それはまだ私に完全な論理的な意味をしています..しかし、私は何かが欠けている必要があります!

答えて

4

従来のSQLはマルチテーブルの削除をサポートしていませんが、MySQL です。それはあなたがMySQLの特定の構文を使用している意味:

DELETE pl, pls 
    FROM TBL_PLAYLISTS pl 
    JOIN TBL_PLAYLISTSONGS pls ON pls.playlist_id = pl.playlist_id 
WHERE pl.playlist_id = 1 

参考:

+0

興味深い、MySQLは削除に参加、サポートを知っていたことはありません。 –

+0

@Kaleb Brasee:[MySQLのUPDATEステートメント](http://dev.mysql.com/doc/refman/5.0/en/update.html)も非常に悪いです。 –

+0

実際のJOIN表記を使用する必要があります。適切な言葉が何であれ、それを関連付けるだけでなく、非常に興味深いものです。 – Damon

関連する問題