我一直在使用这样的 2 张桌子
tbl_songs
id | track_id | dummy_name
tbl_tracks
id | song_id
我有重复的 dummy_name 但我的第一条记录的重复记录集中的值像这样更新为 tbl_tracks 。
tbl_songs s
id | track_id | dummy_name
1 | 12 | A
2 | | A
3 | | A
4 | 2 | B
4 | | B
tbl_tracks t
id | song_id
2 | 4
12 | 1
通过内部连接关系,我更新了 tbl_songs 的 track_id 列以查找重复记录。
注意我想删除那些具有相同 dummy_name(即重复的记录)并且具有track_id = ''
或我可以说与 tbl_tracks 无关的记录。
我尝试过的用于选择记录的 sql
SELECT a.id as aid, a.dummy_name as adn, b.id as bid, b.dummy_name as bdn
FROM tbl_songs a
LEFT JOIN tbl_songs b ON a.dummy_name = b.dummy_name
WHERE a.track_id != '' AND a.dummy_name != '' AND a.id <> b.id
删除这些记录
DELETE FROM tbl_songs where EXISTS (
SELECT *
FROM tbl_songs a
LEFT JOIN tbl_songs b ON a.dummy_name = b.dummy_name
WHERE a.track_id != '' AND a.dummy_name != '' AND a.id <> b.id)
错误:You can't specify target table 'tbl_songs' for update in FROM clause