我在数据库中有两个(简化的)表。
Table: queuelist
'songID', 'lastplayed'
'7376', '12/01/2013'
'9322', '16/08/2012'
Table: songlist
'ID', 'artist'
'7376', 'Michael Jackson'
'2345', 'Nirvana'
'songID'
和'ID'
是相同的字段。我得到了
'Michael Jackson'
作为输入,并且我想根据'queuelist'
作为公共字段来删除'ID'
的第一行。我是MYSQL菜鸟,一直在尝试示例,但到目前为止还没有完全遵循语法。到目前为止,我有这个...
DELETE S.songID
FROM queuelist Q,
(
JOIN songlist S
ON Q.songID = S.ID
)
WHERE S.artist = 'Michael Jackson'
最佳答案
您应该在sub-query
中使用WHERE clause
,而不要使用JOIN
。
DELETE FROM `queuelist`
WHERE `songID` IN (SELECT `S`.`ID`
FROM `songlist` `S`
WHERE `S`.`artist` = 'Michael Jackson')
这将是结果数据:
Table: queuelist
'songID', 'lastplayed'
'9322', '16/08/2012'
Table: songlist
'ID', 'artist'
'7376', 'Michael Jackson'
'2345', 'Nirvana'