帮助删除mysql中的行

帮助删除mysql中的行,mysql,Mysql,对于删除此查询返回的行,我非常感谢您的帮助: select count(av.sesskey) as total from also_viewed av where av.sesskey not in(select op.sesskey from orders_products op) group by av.sesskey having total = 1 非常感谢大家尝试一下: DELETE FROM also_viewed WHERE sesskey IN (

对于删除此查询返回的行,我非常感谢您的帮助:

select count(av.sesskey) as total from also_viewed av where av.sesskey not in(select op.sesskey from orders_products op) group by av.sesskey having total = 1
非常感谢大家

尝试一下:

DELETE FROM also_viewed
WHERE   sesskey IN (
            SELECT  Distinct sesskey
            FROM    also_viewed
            WHERE   sesskey NOT IN (SELECT sesskey FROM order_products)
            GROUP BY sesskey
            HAVING  COUNT(1) = 1
        )
在DELETE关键字和FROM关键字之后,您可以指定要删除匹配行的表。

未测试


sql返回的是匹配的行数,而不是行本身 使用以删除行

delete from
  also_viewed
where
  sesskey not in(select op.sesskey from orders_products op) 

PS:备份优先;我不能完全确定我是否正确理解了您的查询

您是否正在尝试删除所有av.sesskey行?否,只有上面选择返回的那些查询不会返回任何实际行-它返回一个计数…之前的查询的问题是,它还会删除我想保留的重复行。我知道我已经重新编辑了它,谢谢!谢谢!但我会问和这位精英绅士一样的问题。总的参考文献在哪里对不起,我不确定我是否明白你的意思。你能后退并解释一下整个查询的目标是什么吗?当然,也可以查看一个可能包含重复行的表,我想删除唯一一个未重复且不在表orders中的行。我删除了我的第一个问题…但总数未定义。Thx,但出现了错误:1093-您不能为FROM clauseError中的更新指定目标表“也已查看”!1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在“WHERE av.sesskey NOT IN SELECT op.sesskey from orders_products op GROUP BY av.”附近使用的正确语法。在第1行,try DELETE from也可以查看,其中sesskey NOT IN SELECT op.sesskey from orders_products op GROUP BY sesskey BY sesskey,COUNTsesskey=1;很抱歉,仍然有错误:1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第11064行的“GROUP BY sesskey HANG COUNTSKEY=1”附近使用的正确语法-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解在“WHERE av.sessky NOT IN SELECT op.sessky FROM ORDERS_PRODUCTS op GROUP BY av.”附近使用的正确语法。在同样查看的av1的第1行删除av1,选择countav.sessky作为总计,av.sesskey sesskey FROM也被视为av,其中av.sesskey不在SELECT op.sesskey FROM orders op GROUP中,由av.sesskey将total=1作为查询,其中av1.sesskey=query。sesskey@betus,如果你用backtick引用它,你可以这样做。答案如下:从已查看的av1中删除av1,选择countav.sesskey作为总计,av.sesskey sesskey FROM也被视为av,其中av.sesskey不在SELECT op.sesskey FROM orders op GROUP中,av.sesskey将total=1作为查询,其中av1.sesskey=query.sesskey
DELETE FROM also_viewed av 
WHERE av.sesskey NOT IN
    (SELECT op.sesskey FROM ORDERS_PRODUCTS op)
GROUP BY av.sesskey HAVING COUNT(av.sesskey) = 1;
delete from
  also_viewed
where
  sesskey not in(select op.sesskey from orders_products op)