作業しようとしている更新クエリで厄介な問題が発生しました... 次のステートメントは、channels.media_view_count をサブクエリの結果に更新する必要があります (すべてのチャネル)。
UPDATE channels c
SET c.media_view_count = (
SELECT SUM(t.view_count)
FROM (
SELECT DISTINCT m.viewkey, m.view_count
FROM media m
INNER JOIN participants p ON m.id = p.medium_id
WHERE p.user_id = c.id AND m.is_viewable = 1
AND (p.pending = 0)
) AS t
);
サブクエリは独立して正常に動作します (c.id に 47778 などの実際の ID を指定する場合) が、このステートメントを実行すると、次のようになります。
ERROR 1054 (42S22): Unknown column 'c.id' in 'where clause'
サブクエリ内からチャネル テーブル (c としてエイリアス化) にアクセスできると思いましたか? 私は何かを見逃していますか、それともここで完全に間違っていますか?
ありとあらゆる助けをいただければ幸いです:)
ありがとう、
- ジェフ