我正在尝试运行一个查询,该查询基于一些WHERE条件匹配来自两个表的行,然后将来自表2的链接附加到这些匹配行的表1的新列中。 我跑
UPDATE
maxpreps_player_stats AS mp
SET pbr_link = pbr.plink
FROM pbr_urls AS pbr
WHERE (LOWER(SUBSTRING(pbr.name, 1, 3)) = LOWER(SUBSTRING(mp.fullname, 1, 3))
AND LOWER(SUBSTRING(pbr.name, -3)) = LOWER(SUBSTRING(mp.fullname, -3))
AND LOWER(pbr.state) = LOWER(mp.team_state)
AND LOWER(SUBSTRING(pbr.school, 1, 3)) = LOWER(SUBSTRING(mp.hsname, 1, 3))
AND (pbr.class = mp.grad_lower_bound OR pbr.class = mp.grad_upper_bound));
但是它给我一个错误,即“ FROM”在此位置无效,期望EOF为';'
答案 0 :(得分:1)
MySql不支持此语法。
您可以通过这样的联接来做到这一点:
UPDATE maxpreps_player_stats AS mp
INNER JOIN pbr_urls AS pbr
ON LOWER(SUBSTRING(pbr.name, 1, 3)) = LOWER(SUBSTRING(mp.fullname, 1, 3))
AND LOWER(SUBSTRING(pbr.name, -3)) = LOWER(SUBSTRING(mp.fullname, -3))
AND LOWER(pbr.state) = LOWER(mp.team_state)
AND LOWER(SUBSTRING(pbr.school, 1, 3)) = LOWER(SUBSTRING(mp.hsname, 1, 3))
AND (pbr.class = mp.grad_lower_bound OR pbr.class = mp.grad_upper_bound)
SET mp.pbr_link = pbr.plink;
答案 1 :(得分:0)
请不要在UPDATE查询中使用FROM