我想这是一个明智的选择,但不知怎的,我现在无法管理它。
基本上我有一个桌面专辑和一个桌面艺术家,我想更新艺术家' is_composer
和is_interpreter
标记基于是否存在与专辑的适当字段的关系。 (摆弄演示模式:http://sqlfiddle.com/#!9/129a9)
我尝试使用选择了id的子查询进行更新,但这似乎非常慢。然后我尝试通过使用连接,分组依据和拥有,但至少在执行更新语句时group by不可用。
如果有人能指出我正确的方向,那就太好了!
答案 0 :(得分:2)
将UPDATE
与LEFT JOIN
UPDATE artists AS a
LEFT JOIN albums AS ai ON ai.interpreter = a.id
LEFT JOIN albums AS ac ON ac.composer = a.id
SET a.is_interpreter = ai.id IS NOT NULL,
a.is_composer = ac.id IS NOT NULL