私はこのような選択クエリを持っています:
SELECT n.nid, n.title, n2.nid, n2.title, n2.type
FROM node n
JOIN og_ancestry o ON n.nid = o.group_nid
JOIN node n2 ON n2.nid = o.nid
JOIN og_access_post a ON o.nid = a.nid
JOIN content_type_group c ON n.vid = c.vid
WHERE n.type = 'group'
AND a.og_public = 1
AND c.field_tyyppi_value != 'type1'
これを更新クエリに変換する方法がわかりません。私はこのように試しました:
UPDATE og_access_post a
SET a.og_public = 0
FROM node n
JOIN og_ancestry o ON n.nid = o.group_nid
JOIN node n2 ON n2.nid = o.nid
JOIN og_access_post a ON o.nid = a.nid
JOIN content_type_group c ON n.vid = c.vid
WHERE n.type = 'group'
AND a.og_public = 1
AND c.field_tyyppi_value != 'type1'
しかし、エラーが発生しています。
SQL構文にエラーがあります。'FROM n.nid、n.title、n2.nidの近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。
私はいくつかの解決策を見つけましたが、それらを使用すると、テーブルと結合の順序を変更する必要があります。選択クエリのロジックは正しいので、更新を行うためにクエリのロジックをもう一度考えなければならないことは私には意味がありません。
クエリの構造を根本的に変更せずに、クエリを更新用に変換するにはどうすればよいですか?