gpt4 book ai didi

php - MySQL查询从A表中删除所有在B表中找不到id的行?

转载 作者:行者123 更新时间:2023-11-29 07:06:19 24 4
gpt4 key购买 nike

在我的 mySQL 数据库中,audience 表下有一个名为 unique_hash 的列,其中每个访问者都有唯一的标识符。

在表behaviour中有一个列unique_hashpageunique_hash 可以有很多行,这与 audience 表相反。但是,在 behaviour 上找到的 unique_hash 来自已将其保存到 audience 表中的访问者。

不幸的是,由于某些维护原因,我丢失了一些数据,结果是表behaviour中的unique_hash的不同数量超过了 audience 的唯一哈希,这应该相等的时间。

什么是mysql查询,它将删除behaviour表中的所有行,而在audience表中找不到unique_hash

最佳答案

您可以使用NOT IN像下面这样:

DELETE FROM behaviour 
WHERE NOT unique_hash IN (
SELECT DISTINCT unique_hash FROM audience
)

第二种解决方案是使用 NOT EXISTS :

DELETE FROM behaviour
WHERE NOT EXISTS (
SELECT * FROM audience
WHERE audience.unique_hash = behaviour.unique_hash
)

关于php - MySQL查询从A表中删除所有在B表中找不到id的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41467405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com