Чем синтаксис удаления MySQL отличается от выбора? - PullRequest
1 голос
/ 08 декабря 2010

Это:

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 * vs DELETE.Это все еще имеет для меня логический смысл ... но я, должно быть, что-то упускаю!

1 Ответ

4 голосов
/ 08 декабря 2010

Традиционный 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

Ссылка:

...