【问题标题】:Delete a Select Inner Join Query result删除 Select Inner Join 查询结果
【发布时间】:2021-12-26 16:47:24
【问题描述】:
SELECT yturl from ytpointadder a
JOIN watched b on b.watchedyt = a.yturl AND b.ip = a.ip
Group by a.ip;

我想删除exp的查询结果这个查询结果是:

yturl ip id
eY5WRONGXDI 197.XX.XX.XXX 1

虽然我想从 ytpointadder 中删除它。我试过了:

DELETE from ytpointadder a
JOIN watched b on b.watchedyt = a.yturl AND b.ip = a.ip
Group by a.ip;

【问题讨论】:

    标签: mysql sql inner-join


    【解决方案1】:

    在部分查询中,它应该返回一列 您可能需要使用括号

    试试这个

    DELETE FROM ytpointadder
    WHERE yturl IN
    ( 
    SELECT a.yturl from  ytpointadder a
    JOIN watched b on b.watchedyt = a.yturl AND b.ip = a.ip
    Group by a.ip)
    

    【讨论】:

    • 谢谢你,但认为这行不通
    • 出现的错误信息是什么?
    【解决方案2】:

    您不能在 FROM 子句中为更新(删除)指定相同的目标表。所以你必须使用另一个外部查询。

    试试:

    DELETE FROM ytpointadder
    WHERE yturl IN  ( SELECT t.yturl FROM (SELECT a.yturl, a.ip from ytpointadder a
                                         JOIN watched b on b.watchedyt = a.yturl AND b.ip = a.ip
                                         Group by a.ip 
                                         ) as t 
                     ) ;
    

    【讨论】:

      猜你喜欢
      • 2016-01-02
      • 1970-01-01
      • 2016-08-29
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 2020-09-19
      相关资源
      最近更新 更多