2013-08-29 54 views
0

我在數據庫中有兩個(簡化)表。根據另一個表中的查找值刪除表中的行

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'作爲輸入,我想根據查找'ID'作爲公共字段刪除'queuelist'中的第一行。我是一個MYSQL noob,並且一直在嘗試示例,但到目前爲止,並不完全遵循語法。

到目前爲止,我有這個...

DELETE S.songID 
FROM queuelist Q, 
(
JOIN songlist S 
ON Q.songID = S.ID 
) 
WHERE S.artist = 'Michael Jackson' 

回答

1

您應該使用在WHERE clause一個sub-query而不是使用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' 
+0

感謝您的答覆。我在第一個問題上得到一個縮進錯誤(語法錯誤,意外的IDENT_QUOTED,期待END_OF_INPUT或';')。任何想法? –

+0

@square_eyes已修改。現在嘗試 – Itay

+0

語法錯誤已經消失,但現在我得到錯誤代碼:1054.'字段列表'中的未知列'S.songID' –

相關問題