tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
235
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    awiller awiller ist offline Grünschnabel
    Registriert seit
    Sep 2011
    Beiträge
    3
    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
     

  2. #2
    Tim Bureck Tim Bureck ist offline Mitglied Platin
    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
     

  3. #3
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

  4. #4
    awiller awiller ist offline Grünschnabel
    Registriert seit
    Sep 2011
    Beiträge
    3
    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
     

  5. #5
    awiller awiller ist offline Grünschnabel
    Registriert seit
    Sep 2011
    Beiträge
    3
    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

  1. Unknown column. In phpmyadmin funktionierts, im query aber nicht.
    Von Nord-Süd-Richtung im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 07.01.09, 17:21
  2. Unknown column '$id' in 'where clause'
    Von Duellking im Forum PHP
    Antworten: 5
    Letzter Beitrag: 31.10.08, 10:41
  3. Unknown column in where clause
    Von peper im Forum PHP
    Antworten: 2
    Letzter Beitrag: 16.08.07, 13:42
  4. Unknown column '' in 'where clause'
    Von tayke im Forum Relationale Datenbanksysteme
    Antworten: 9
    Letzter Beitrag: 03.04.07, 19:28
  5. Unknown column 'M' in 'where clause'
    Von ahh im Forum Relationale Datenbanksysteme
    Antworten: 8
    Letzter Beitrag: 21.02.05, 16:22