私は二つのテーブルがあります。MySQLの条件付きのテーブル更新不明な列エラー1054
Table_A
を=店舗Table_B
=集約関数のために使用する
Table_A
とTable_B
シェアID
と呼ばれる2つの列を結果CYCLE
でも、Table_B
には、複数の出現が含まれています(CYCLE
)。 CYCLE
の出現回数をTable_B
に数えて、Table_A
に格納したいと思います。たとえば、CYCLE
= 42の場合、同じ値を持つ行が20行あり、CYCLE
の値はになりますが、CYCLE
は同じ値(42)ですが、COUNT
の列は私は私のクエリのError Code: 1241. Operand should contain 1 column(s)
任意の提案を得続ける
UPDATE database.Table_A
SET count =
(
SELECT ID, CYCLE,
COUNT(*) FROM database.Table_2
GROUP BY ID, CYCLE
)
WHERE database.Table_1.ID = database.Table_2.ID AND
database.Table_1.CYCLE = database.Table_2.CYCLE
:ここでは20が含まれていますそのCYCLE
ためTable_A
は、私がこれまで持っているものでしょうか?
EDIT 1
SELECT
文は、2つの列を返します。それがError Code: 1241
を引き起こしているのですが、それが解決されたので、私はError Code: 1054. Unknown column 'database.Table_2.CYCLE' in 'where clause'
となります。
[MySQLエラー "オペランドには1列が含まれているはずです]"(http://stackoverflow.com/questions/9707664/mysql-error-operand-should-contain-1-column) – Drew
@Drewありがとうポイントそれはアウト。私は問題がSELECT文でどこにあったのか理解し、それを反映するために私の質問を編集しました。今では '不明な列... 'に直面しています - エラー1054。 – vFlav
別のテーブルのデータを使用して1つのテーブルを更新することはできません。同じものにJOINを使用する必要があります。 'database.Table_2.CYCLE = database.Table_2.CYCLE'とは何ですか?あなたは 'database.Table_1.CYCLE = database.Table_2.CYCLE'を意味しましたか?私はあなたがmysqlの問題を意味していると仮定しています –