具有 LEFT JOIN 和 GROUP BY 的 MySQL 更新作业



有没有办法根据左连接的结果更新值并分组依据?

我希望能够将当前工作的类别更新为可见,我在下面尝试过,但它不起作用

UPDATE category c 
            LEFT JOIN portfolio_job_category pjc
            ON pjc.category_id = c.id
            LEFT JOIN job j
            ON j.id = pjc.job_id
            SET c.visible = 0
            WHERE (c.visible = 0 
            OR c.visible IS NULL)
            AND j.end_date > CURRENT_DATE
            GROUP BY cat_id

GROUP BY不是UPDATE语句语法的一部分(链接)。 GROUP BY作为更新的一部分没有多大意义,因为不涉及聚合函数。如果您的目标只是更新与尚未结束的作业关联的所有类别,您应该能够仅通过您拥有的联接来完成此操作。

此外,WHERE条款中析取的c.visible = 0部分似乎是多余的。如果已为 0,则无需将 visible 设置为 0。

最新更新