2010-12-08 4 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 * 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 statements] (http://dev.mysql.com/doc/refman/5.0/en/update.html) - 너무 좋지 않기 때문에 더 일반적이지 않습니다. 매우 도움이되기 때문입니다. –

+0

그래서 실제 JOIN 표기법을 사용해야합니다. 적절한 용어는 무엇이든 상관없이 연관성이 없습니다. 매우 흥미 롭습니다! – Damon