ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
235
235
EMPFEHLEN
-
Hallo zusammen,

ich versuche grade eine einfache SQL-Abfrage zusammenzubasteln.
Die Abfrage soll später daran beteiligt sein, zwei Tabellen zu vergleichen und ggf. aufgetretene Änderungen anzugleichen.
Bisher ist der Stand folgender:
Code :1 2 3
UPDATE mobile.stellen SET mobile.stellen.latlon_changed = 1 WHERE (mobile.stellen.prev_country <> mand1.job.einsatzort OR mand1.job.einsatzplz <> mobile.stellen.prev_zip)
Wenn ich die Abfrage mit der MySQL Workbench ausführe bekomme ich jedoch immer folgende Fehlermeldung:
Unknown column 'mand1.job.einsatzort' in 'where clause'.
Was mache ich dabei falsch, so kompliziert ist das bisher ja nicht wirklich...
?
Danke im Vorraus,
Alex
-
29.09.11 14:08 #2
- Registriert seit
- Apr 2009
- Ort
- Düsseldorf (NRW)
- Beiträge
- 508
Hi und Willkommen bei tutorials,de
offensichtlich existiert die SPalte einsatzort nicht. Poste mal den Output von
Code sql:1
SHOW CREATE TABLE mand1.job;
Best regards
-
29.09.11 14:18 #3
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Hi.
Ein Update verarbeitet sukzessive alle Zeilen einer Tabelle. Du kannst dich bei diesem Update nicht einfach auf x-beliebige Spalten einer anderen Tabelle beziehen. Wie sollte das RDBM wissen in welchem Zusammenhang diese zur aktuellen Tabelle stehen?
Du müßtest vermutlich erstmal ein Join machen und mit Subselects arbeiten. Dann wäre vermutlich diese Vorgehensweise nicht gerade die effizienteste...
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Dankeschön erstmal,
bei der SQL-Abfrage kommt das heraus (einige nicht-relevante Spalten entfernt):
'CREATE TABLE `job` (
`einsatzort` varchar(255) collate utf8_unicode_ci default NULL,
`einsatzplz` varchar(255) collate utf8_unicode_ci default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uuid` (`uuid`),
KEY `wp_mandnr` (`mandnr`),
KEY `wp_geschst` (`geschst`),
KEY `wp_branchenid` (`branchenid`)
) ENGINE=InnoDB AUTO_INCREMENT=1163 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci'
Die Spalte existiert also schon...
Folgende Abfrage funktioniert übrigens
Code :1 2 3
UPDATE mobile.stellen SET mobile.stellen.latlon_changed = 1 WHERE (mobile.stellen.prev_country = 1)
Wenn ich an Stelle der mobile.stellen-Spalte jedoch die Spaltenbezeichnung einer Spalte aus der mand1.job-Tabelle einsetze, funktioniert es nicht mehr.
Ich werde mir das mit dem Join mal anschauen.
Gruß,
Alex
-
Hallo nochmal,
ich hab es jetzt hinbekommen, danke für den Tipp mit dem Join!
Hier noch der Code:
Code sql:1 2 3 4 5
DELETE FROM mobile.stellen WHERE NOT EXISTS(SELECT uuid FROM mand1.job WHERE mand1.job.uuid = mobile.stellen.uuid); UPDATE mand1.job,mobile.stellen SET mobile.stellen.prev_zip=mand1.job.einsatzplz, mobile.stellen.prev_country=mand1.job.einsatzort, mobile.stellen.latlon_changed = 1 WHERE mand1.job.uuid = mobile.stellen.uuid AND (prev_zip <> einsatzplz OR prev_country <> einsatzort); INSERT IGNORE INTO mobile.stellen (uuid, prev_zip, prev_country) SELECT uuid, einsatzplz, einsatzort FROM mand1.job;
Gruß,
Alex
Ähnliche Themen
-
Unknown column. In phpmyadmin funktionierts, im query aber nicht.
Von Nord-Süd-Richtung im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 07.01.09, 17:21 -
Unknown column '$id' in 'where clause'
Von Duellking im Forum PHPAntworten: 5Letzter Beitrag: 31.10.08, 10:41 -
Unknown column in where clause
Von peper im Forum PHPAntworten: 2Letzter Beitrag: 16.08.07, 13:42 -
Unknown column '' in 'where clause'
Von tayke im Forum Relationale DatenbanksystemeAntworten: 9Letzter Beitrag: 03.04.07, 19:28 -
Unknown column 'M' in 'where clause'
Von ahh im Forum Relationale DatenbanksystemeAntworten: 8Letzter Beitrag: 21.02.05, 16:22





Zitieren
Login





