Select oder Join & Update ?

sql_newbie

Grünschnabel
Hallo habe folgendes Problem:

Ich habe zwei Tabellen.

In der Tabelle1 habe ich die Felder ADR_NR und ADR_ANSP_NR .

In der Tabelle2 habe ich die Felder NR und Strasse ........

Jetzt möchte ich die Strasse der ADR_ANSP_NR in die Strasse der ADR_NR updaten.


Beispiel:
Tabelle1
ADR_NR | ADR_ANSP_NR
1 | 2
4 | 6


Tabelle2
NR | Strasse
1 | <null>
2 | Amselweg 5
4 | <null>
6 | Drosselweg 8

Wie kann ich das Anstellen?

Das ganze sind so circa 8000 Datensätze.

Vielen Dank im vorraus.
fred
 
Ich versuch das mal verständlich zu machen.

In Tabelle2 befinden sich Adressstammdaten und die Adressdaten der Ansprechpartner.
Ich habe hier auf die anderen Felder (Name, PLZ, Ort usw) der einfachheit wegen verzichtet.

In Tabelle1 befindet sich die Information das in diesem Beispiel Datensatz 1 und 4 Adressstammdaten (ADR_NR) und Datensatz 2 und 6 (jeweils in Tabelle2) sind die Ansprechpartner (ADR_ANSP_NR).

Datensatz 1 in Tabelle2 ist also die Adresse und Datensatz 2 der dazugehörende Ansprechpartner.

Somit ist Datensatz 4 wieder die Adresse und Datensatz 6 der dazugehörende Ansprechpartner.

Da beim Import der Adressdaten in das System die Strasse nicht in die Adressstammdaten, also hier Datensatz 1 und 4, sondern nur zu den Ansprechpartnern, hier 2 und 6 eingefügt wurde und bereits änderungen an den Daten vorgenommen wurden möchte ich die Strasse aus 2 in 1 und aus 6 in 4 einfügen.

Ich hoffe jetzt versteht jemand mein Anliegen.

Gruss Fred
 
Hab ich das dann nun richtig verstanden? Die Adressen(Stammdaten) und Ansprechpartner wären dann die selben jeweils?
Die jeweiligen Anprechpartneradressen sollen (anhand der Zusammengehörigkeit aus Tab 1) in die Stammdatenadressfelder kopiert werden? (die im Mom. noch NULL sind)
Ich glaube so ist es zu verstehen, aber das macht doch keinen Sinn oder?
Dann waer ja Stammdatum und Ansprechpartnerdatum das gleiche jeweils?!


Noch mehr aufklaerung bitte %)

Gruß
Frank
 
Ich hab das Beispiel mal angelegt:
# MySQL-Front Dump 2.5
#
# Host: localhost Database: FIRMA
# --------------------------------------------------------
# Server version 3.23.51-nt

USE FIRMA;


#
# Table structure for table 'a_adressstamm'
#

DROP TABLE IF EXISTS a_adressstamm;
CREATE TABLE a_adressstamm (
ADR_INTNR int(11) NOT NULL default '0',
ADR_VERSION int(11) NOT NULL default '0',
AKTUELL int(11) NOT NULL default '0',
GEB_DATUM float default NULL,
AENDERUNGS_BENNR int(11) default NULL,
PERS_TYP int(11) NOT NULL default '0',
ANR_NR int(11) default NULL,
ADR_NAME_1 char(40) default NULL,
ADR_NAME_2 char(40) default NULL,
ADR_NAME_3 char(40) default NULL,
ADR_ZUSATZ char(40) default NULL,
ADR_VORNAME char(40) default NULL,
POSTFACH char(20) default NULL,
PF_LANDKEZI char(4) default NULL,
PF_PLZ char(10) default NULL,
PF_ORT char(70) default NULL,
STR char(70) default NULL,
LANDKEZI char(4) default NULL,
PLZ char(10) default NULL,
ORT char(70) default NULL,
ENTFERNUNG int(11) default NULL,
ABTEILUNG char(40) default NULL,
IR_HAUS char(70) default NULL,
ADR_USA_MI char(8) default NULL,
STATE_USA char(2) default NULL,
PF_STATE_USA char(2) default NULL,
AENDERUNGS_DATUM float default NULL,
IR_BEZIRK char(70) default NULL,
IR_LANDBEZ char(70) default NULL,
ADRESSFELDER_CID int(11) default NULL,
UNIQUE KEY A_ADRESSSTAMM_IDX1 (ADR_INTNR,ADR_VERSION),
KEY A_ADRESSSTAMM_IDX2 (AKTUELL,ADR_INTNR,ADR_VERSION),
KEY A_ADRESSSTAMM_IDX3 (AKTUELL,ADR_INTNR),
KEY A_ADRESSSTAMM_IDX4 (ADR_INTNR,AKTUELL)
) TYPE=MyISAM;



#
# Dumping data for table 'a_adressstamm'
#

INSERT INTO a_adressstamm VALUES("1", "1", "1", NULL, NULL, "0", NULL, "Baur Gaebel GmbH", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "50968", "Köln", "120", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO a_adressstamm VALUES("2", "1", "1", NULL, NULL, "0", NULL, "Baur Gaebel GmbH", "Martin", "Schneider", NULL, NULL, NULL, NULL, NULL, NULL, "Brühler Str. 210", NULL, "50968", "Köln", "120", "Verkauf", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO a_adressstamm VALUES("4", "1", "1", NULL, NULL, "0", NULL, "Eastman Chemical Deutschland GmbH", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "51149", "Köln", "125", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO a_adressstamm VALUES("6", "1", "1", NULL, NULL, "0", NULL, "Eastman Chemical Deutschland GmbH", "Herbert", "Müller", NULL, NULL, NULL, NULL, NULL, NULL, "Charlottenstr. 61", NULL, "51149", "Köln", "125", "Qualitätssicherung", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);


#
# Table structure for table 'a_anspr_adr_verz'
#

DROP TABLE IF EXISTS a_anspr_adr_verz;
CREATE TABLE a_anspr_adr_verz (
ADR_INTNR int(11) NOT NULL default '0',
ADR_VERSION int(11) NOT NULL default '0',
ADR_TYP int(11) NOT NULL default '0',
ANSPRADR_INTNR int(11) NOT NULL default '0',
ANSPRADR_VERSION int(11) NOT NULL default '0',
ANSPR_STAT char(1) NOT NULL default '',
UNIQUE KEY A_ANSPR_ADR_IDX1 (ADR_INTNR,ADR_VERSION,ADR_TYP,ANSPRADR_INTNR,ANSPRADR_VERSION),
KEY A_ANSPR_ADR_IDX2 (ANSPRADR_INTNR,ANSPRADR_VERSION)
) TYPE=MyISAM;



#
# Dumping data for table 'a_anspr_adr_verz'
#

INSERT INTO a_anspr_adr_verz VALUES("1", "1", "0", "2", "0", "");
INSERT INTO a_anspr_adr_verz VALUES("4", "1", "0", "6", "0", "");


Wie man sieht fehlt die Strasse bei den Firmen ( ADR_INTNR 1 und 4 ) , bei den Ansprechpartnern ( ADR_INTNR 2 und 6 ) ist sie drin. Ich möchte also die Strasse der Ansprechpartner in die Strasse der Firmen einfügen.

Ich hoffe ihr versteht das nun. Die Datenbankstrucktur ist so vorgegeben. Wie gesagt ist beim Import die Strasse nicht in beide Datensätze geschrieben worden und es sind schon Änderungen an den Daten vorgenommen worden. Sonst könnte ich die Daten löschen und erneut Importieren.

Gruss Fred
 
Zuletzt bearbeitet:
Ja Frank genau so ist das. Nur welches Datum meinst du? Ich möchte ja nur die Strasse ändern. Da der Ansprechpartner in unserem Fall nur jeweils einer ist und unter der Firmenadresseadresse arbeitet ist somit die Strasse gleich. Die Anwendung die auf die Daten zugreift hat unterschiedliche Masken. Wähle ich eine Firma aus ist die Strasse leer, klicke ich auf Ansprechpartner wird die Strasse angezeigt.
 
Zurück