wenn Daten aus T1 in auch T2 schreibe sie in T3
wenn Daten aus T1 in auch T2 schreibe sie in T3
Hallo zusammen,
ich weiß nicht mehr weiter...
Theorie:
Ich habe Tabelle 1 (t_user) und Tabelle 2 (t_gruppe). Möchte aus Tabelle 1 die Datensätze wählen, die auch den Kriterien in Tabelle 2 entsprechen und sie in Tabelle 3 (t_auswahl) kopieren.
Problem:
Die Select-Abfrage gibt mir via echo die richtigen Zeilen aus. Aber mit dem Insert klappt es leider nicht. Es wird nichts in Tabelle 3 gefügt.
Script:
$befehl = "INSERT INTO t_auswahl (id, name, gruppe, status, daten)
SELECT *
FROM t_user
INNER JOIN t_gruppe
ON ( t_auswahl.gruppe = t_gruppe.gruppe) WHERE t_gruppe.status < 0
;";
Kann mir wer folgen? Wäre super, das beschäftigt mich nämlich schon seit einiger Zeit.
Eine ähnliche Abrfrage mit gleicher Code-Struktur funktioniert, Unterschied ist nur, bei jener Abfrage gibt es lediglich 2 Tabellen.
ich weiß nicht mehr weiter...
Theorie:
Ich habe Tabelle 1 (t_user) und Tabelle 2 (t_gruppe). Möchte aus Tabelle 1 die Datensätze wählen, die auch den Kriterien in Tabelle 2 entsprechen und sie in Tabelle 3 (t_auswahl) kopieren.
Problem:
Die Select-Abfrage gibt mir via echo die richtigen Zeilen aus. Aber mit dem Insert klappt es leider nicht. Es wird nichts in Tabelle 3 gefügt.
Script:
$befehl = "INSERT INTO t_auswahl (id, name, gruppe, status, daten)
SELECT *
FROM t_user
INNER JOIN t_gruppe
ON ( t_auswahl.gruppe = t_gruppe.gruppe) WHERE t_gruppe.status < 0
;";
Kann mir wer folgen? Wäre super, das beschäftigt mich nämlich schon seit einiger Zeit.
Eine ähnliche Abrfrage mit gleicher Code-Struktur funktioniert, Unterschied ist nur, bei jener Abfrage gibt es lediglich 2 Tabellen.
Und wenn DU diesen Befehl direkt im phpMyAdmin eingibst?
Code: Alles auswählen
INSERT INTO t_auswahl (id, name, gruppe, status, daten)
SELECT *
FROM t_user
INNER JOIN t_gruppe
ON ( t_auswahl.gruppe = t_gruppe.gruppe) WHERE t_gruppe.status < 0
;
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Ich schmeiß' alles hin und...
... lasse es liegen
Code: Alles auswählen
#1136 - Column count doesn't match value count at row 1
Tab2 hat weniger als Tab1 und Tab3. Aber es soll ja auch nur mit Tab2 verglichen werden. Die Tabellenanzahl der Daten, die Übergaben werden, sind schon gleich. Oder missinterpretiere ich das?
Ändere einfach das SELECT * und gib die Spaltennamen genau an (das ist sollte man sowieso immer machen - siehe SELECT * is evil).
KB:knigge
Das habe ich mir schon gedacht. Pyramide hat schon die Antwort entsprechend gepostet.schluebby hat geschrieben:Code: Alles auswählen
#1136 - Column count doesn't match value count at row 1
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Ich schmeiß' alles hin und...
... lasse es liegen
Code: Alles auswählen
INSERT INTO t_auswahl (id, name, gruppe, status, daten)
SELECT t_user.id, t_user.name, t_user.gruppe, t_user.status, t_user.daten
FROM t_user
INNER JOIN t_gruppe
ON ( t_auswahl.gruppe = t_gruppe.gruppe) WHERE t_gruppe.status < 0
;

(Das war ja ne schwere Geburt.)