Ich habe zwei Tabellen:MySQL bedingte Tabellenaktualisierung Unbekannte Spalte Fehler 1054
Table_A
= speichert die ErgebnisseTable_B
= für Aggregatfunktion verwenden
Table_A
und Table_B
Aktien zwei Spalten genannt ID
und CYCLE
, aber Table_B
enthält mehrere Vorkommen von CYCLE
. Ich möchte die Anzahl der Vorkommen von CYCLE
in Table_B
zählen und sie in Table_A
speichern. Wenn zum Beispiel für CYCLE
= 42 wir 20 Zeilen haben, die den gleichen Wert haben, möchte ich das zählen (dh 20) und es in Table_A
unter CYCLE
speichern, da CYCLE
den gleichen Wert (42) aber die COUNT
Spalte in haben wird Table_A
für diese CYCLE
wird 20. Hier enthalten ist, was ich habe, so weit:
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
ich halte Error Code: 1241. Operand should contain 1 column(s)
Irgendwelche Vorschläge für meine Frage zu bekommen?
EDIT 1
Die SELECT
Anweisung gibt zwei Spalten. Das ist, was Error Code: 1241
verursacht, aber jetzt, dass das gelöst ist, bekomme ich Error Code: 1054. Unknown column 'database.Table_2.CYCLE' in 'where clause'
.
Mögliches Duplikat von [MySQL Fehler "Operand sollte 1 Spalte enthalten]] (http://stackoverflow.com/questions/9707664/mysql-error-operand-should-contain-1-column) – Drew
@Drew danke für das Zeigen das heraus. Ich verstehe, wo das Problem mit der SELECT-Anweisung war und habe meine Frage bearbeitet, um das zu reflektieren. Jetzt bin ich konfrontiert mit "Unbekannte Spalte ..." - Fehler 1054. – vFlav
Sie können nicht aktualisieren Sie eine Tabelle mit Daten aus einer anderen Tabelle, müssen Sie JOIN für die gleiche verwenden. Was ist 'database.Table_2.CYCLE = database.Table_2.CYCLE'? Meintest du "database.Table_1.CYCLE = database.Table_2.CYCLE"? Ich nehme an, Sie meinten das Problem für mysql –