删除双重条目

时间:2016-09-26 13:33:41

标签: php mysql database

我的数据库中有几个条目,让我们说它是一个包含人们书籍的图书馆。

E.g。

Bookname A - UserA
Bookname B - UserB

我现在导入了一些同名的书籍,并制作了#34; UserC"作为他们的主人。

所以现在我有了

Bookname A - UserA
Bookname B - UserB
Bookname A - UserC
Bookname C - UserC

如何只删除那些所有者为UserC并且该书名已由另一个非UserC的人拥有的条目?

我的结果应该是:

Bookname A - UserA
Bookname B - UserB
Bookname C - UserC

感谢你!

2 个答案:

答案 0 :(得分:0)

您可以使用子选择基于获取更多条目的名称和过滤器删除用户=' C'

struct SomeStruct {
    void Initialise() volatile
    {
        /*...*/
    }
}

答案 1 :(得分:0)

内部选择的答案不起作用,因为它使用FROM子句中的更新目标。 MySQL不允许这样做。 但是使用删除连接,这是可能的。我的解决方案可能不是最优雅的,但它有效:

DELETE t1 FROM book_table t1 LEFT JOIN book_table t2 ON t1.book = t2.book AND t2.user <> 'C' WHERE t1.user = 'C' AND t2.user IS NOT NULL;

首先使用select而不是delete来测试它,这样你就可以看到它会删除正确的条目。