2

コメントを持つドキュメント ストア内のすべてのアイテムのリストを返す select ステートメントがあります (別のコメント テーブルに格納されています)。

私がやろうとしているのは、以下のステートメントに基づいて、コメントをリリースしたすべてのドキュメントの public_document_store (skin_id) の別の列の値を更新することです。

これにより、更新するレコードが返されます。

SELECT public_document_store_talkback.document_id,
public_document_store.section_id
FROM public_document_store
INNER JOIN public_document_store_talkback ON public_document_store_talkback.document_id = public_document_store.document_id
WHERE public_document_store_talkback.is_released = 1 
AND public_document_store_talkback.is_rejected = 0 
AND public_document_store.section_id = 10;

次のように skin_id フィールドを更新しようとしました。

Update public_document_store SET skin_id = 6 
WHERE document_id IN (Select... [as per the statement above] )

しかし、これはエラーを返します:

[Err] 1241 - オペランドには 1 列を含める必要があります

ここでの他の回答に基づいて、他のさまざまな順列を試しましたが、運がありませんでした (SQL に関する私の知識はかなり基本的なものなので、ここで明らかな何かが欠けている場合はお詫びします)。

この作業をどのように行うことができるかについてのアイデアは大歓迎です。

4

1 に答える 1

1

クエリをステートメントSELECTに変換するには、クエリを少し変更するだけで済みます。UPDATE

UPDATE  public_document_store a
        INNER JOIN public_document_store_talkback b
            ON b.document_id = a.document_id
SET     a.skin_id = 6
WHERE   b.is_released = 1 AND 
        b.is_rejected = 0 AND 
        a.section_id = 10
于 2013-06-02T10:16:29.210 に答える