SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 06.09.2014, 18:41:07
million68 million68 ist offline
Anfänger
 
Registriert seit: Sep 2014
Alter: 40
Beiträge: 5
Daten aus 3 ungleichen Tabellen zusammenführen

Hallo,

ich versuche seit Tagen ein Problem zu lösen. Die Situation ist folgende:

Tabelle 1 Kunde 20.000 Datensätze
kunden_id --- name --- anschrift --- email
1 --- Schmidt --- München --- schmidt@münchen.de
2 --- Meier --- Berlin --- meier@berlin.de
3 --- Müller --- Frankfurt --- müller@frankfurt.de

Tabelle 2 Vorgang 15.000 Datensätze
vorgang_id --- vorgang_datum --- vorgang_anschrift
1 --- Jan. 12 --- 1165
2 --- Feb. 13 --- 2243
3 --- Mär. 14 --- 3356

Tabelle 3 Vorgang-Adressen 170.000 Datensätze
va_id --- va_kunden_id --- va_rechnungsanschrift --- va_lieferanschrift
2243 --- 2 --- Berlin --- Berlin
1165 --- 1 --- München --- Nürnberg
3356 --- 3 --- Frankfurt --- Frankfurt

Ihr habt sicher gleich erkannt wie die 3 Tabellen zusammenhängen. Wichtig ist Tabelle 2. Über vorgang_anschrift wird der passende Datensatz aus Tabelle 3 abgefragt. Dort wiederum wird über va_kunden_id der passende Kunde aus Tabelle 1 abgefragt.
Ich versuche nun verzweifelt jedem Vorgang aus Tabelle 2, den richtigen Kunden und die richtige Adresse zuzuordnen.

Das Ergebnis sollte nach möglichkeit in eine 4 Tabelle übertragen werden oder es sollte eine csv generiert werden. Diese sollte alle Datensätze aus Tabelle 2 beinhalten und zwar ergänzt um die Kundendaten aus Tabelle 1 und die Anschrift aus Tabelle 3.

Ich muss diesen Vorgang nur einmal sauber durchführen, nur hatte ich bisher noch kein Glück. Vielleicht kann mir jemand weiterhelfen.

Vielen Dank schonmal und Grüße.
Johannes
Mit Zitat antworten
  #2  
Alt 06.09.2014, 19:30:40
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Daten aus 3 ungleichen Tabellen zusammenführen

Hallo und willkommen hier im Forum.


Wie sehen Deine diesbezüglichen Bemühungen bisher aus?

Schöne wären auch die Strukturen der drei Tabellen.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3  
Alt 06.09.2014, 20:47:56
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Daten aus 3 ungleichen Tabellen zusammenführen

Zitat:
Zitat von million68 Beitrag anzeigen

Ihr habt sicher gleich erkannt wie die 3 Tabellen zusammenhängen.
Nein, das hier ist kein Rätselforum.
Mit Zitat antworten
  #4  
Alt 06.09.2014, 21:42:58
million68 million68 ist offline
Anfänger
 
Registriert seit: Sep 2014
Alter: 40
Beiträge: 5
AW: Daten aus 3 ungleichen Tabellen zusammenführen

Vielen Dank.

@pguser Da hast du mich falsch verstanden. Aus diesem Grund hatte ich versucht das deutlicher zu machen. Unter anderem durch die farbige Markierung.

Zu meinem Problem. Ich hab mir Union angeschaut und auch Joins. Ob das der richtige Weg ist kann ich nicht sagen, zumindest hat es noch nicht funktioniert.
Ich bin nicht besonders stark was MySQL angeht. Für eine einfache Abfrage ohne viele Bedingungen hat es immer gereicht. Auch das Speichern als csv ist kein Problem.

Ich weiß nicht wie ich es bewerkstellige dass die einzelnen Datensätze aus Tabelle 2, nach und nach abgearbeitet werden.

Wenn du mit der Struktur den Typ meinst, ist es MyISAM.

Gruß
Johannes
Mit Zitat antworten
  #5  
Alt 07.09.2014, 06:35:00
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Daten aus 3 ungleichen Tabellen zusammenführen

Zitat:
Zitat von million68 Beitrag anzeigen
Vielen Dank.

@pguser Da hast du mich falsch verstanden. Aus diesem Grund hatte ich versucht das deutlicher zu machen. Unter anderem durch die farbige Markierung.

Zu meinem Problem. Ich hab mir Union angeschaut und auch Joins. Ob das der richtige Weg ist kann ich nicht sagen, zumindest hat es noch nicht funktioniert.
Was hat nicht funktioniert? Du hast keinen Versuch gezeigt.

Zitat:
Wenn du mit der Struktur den Typ meinst, ist es MyISAM.
Nein, mit Struktur ist gemeint, welche primary Keys und welche Foreign Keys es gibt. MyISAM ist was anderes: das ist radioaktiver Sondermüll aus dem letzten Jahrtausend.

Du hast keine Struktur, aber Probleme. Du hast 15.ooo Vorgänge und 170.ooo Adressen. Oder anders rum: Du hast 155.ooo Müll-Adressen.

Egal. Ungefährt hast / suchst Du sowas:

Code:
test=# create table kunde (id int primary key, anschrift text);
CREATE TABLE
test=*# create table vorgang_anschrift (va_id int primary key, kunde int references kunde, anschrift text);
CREATE TABLE
test=*# create table vorgang (id int primary key, va int references vorgang_anschrift);
CREATE TABLE
test=*# insert into kunde values (1, 'Dresden');
INSERT 0 1
test=*# insert into vorgang_anschrift values (3,1,'Buxtehude');
INSERT 0 1
test=*# insert into vorgang values (1, 3);
INSERT 0 1
test=*# select v.*, va.*, k.* from vorgang v left join vorgang_anschrift va on v.va=va.va_id left join kunde k on va.kunde= k.id;
 id | va | va_id | kunde | anschrift | id | anschrift
----+----+-------+-------+-----------+----+-----------
  1 |  3 |     3 |     1 | Buxtehude |  1 | Dresden
(1 row)

test=*# copy (select v.*, va.*, k.* from vorgang v left join vorgang_anschrift va on v.va=va.va_id left join kunde k on va.kunde=k.id) to stdout csv;
1,3,3,1,Buxtehude,1,Dresden
test=*# copy (select v.*, va.*, k.* from vorgang v left join vorgang_anschrift va on v.va=va.va_id left join kunde k on va.kunde=k.id) to stdout csv header;
id,va,va_id,kunde,anschrift,id,anschrift
1,3,3,1,Buxtehude,1,Dresden
Also gehe über JOIN, nicht über UNION. Vermutlich wirst Du aber jede Menge Müll in den Tabellen haben, weil nix mit referentieller Integrität ist. MyISAM - wir erinnern uns: Müll.
Mit Zitat antworten
  #6  
Alt 07.09.2014, 20:23:45
million68 million68 ist offline
Anfänger
 
Registriert seit: Sep 2014
Alter: 40
Beiträge: 5
AW: Daten aus 3 ungleichen Tabellen zusammenführen

Zitat:
Zitat von pguser Beitrag anzeigen
Code:
test=*# select v.*, va.*, k.* from vorgang v left join vorgang_anschrift va on v.va=va.va_id left join kunde k on va.kunde= k.id;
 id | va | va_id | kunde | anschrift | id | anschrift
----+----+-------+-------+-----------+----+-----------
  1 |  3 |     3 |     1 | Buxtehude |  1 | Dresden
(1 row)
Danke dir. Das ergibt Sinn. Einzig die rot markierten Stellen kann ich nicht ganz einordnen. Worauf beziehen diese sich oder sind es Parameter die mit dem Join zusammenhängen.

Schöne Grüße
Johannes
Mit Zitat antworten
  #7  
Alt 07.09.2014, 20:24:50
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Daten aus 3 ungleichen Tabellen zusammenführen

Zitat:
Zitat von million68 Beitrag anzeigen
Danke dir. Das ergibt Sinn. Einzig die rot markierten Stellen kann ich nicht ganz einordnen. Worauf beziehen diese sich oder sind es Parameter die mit dem Join zusammenhängen.

Schöne Grüße
Johannes
Das sind Aliase.
Mit Zitat antworten
  #8  
Alt 07.09.2014, 21:53:34
million68 million68 ist offline
Anfänger
 
Registriert seit: Sep 2014
Alter: 40
Beiträge: 5
AW: Daten aus 3 ungleichen Tabellen zusammenführen

Ah, verstehe. Ich war der Meinung das ein "AS" notwendig ist vor dem Alias. Das scheint aber nur bei Spalten der Fall zu sein.

Vielen Dank, ich werde das morgen gleich testen.
Mit Zitat antworten
  #9  
Alt 11.09.2014, 09:48:06
million68 million68 ist offline
Anfänger
 
Registriert seit: Sep 2014
Alter: 40
Beiträge: 5
AW: Daten aus 3 ungleichen Tabellen zusammenführen

Moin,

ich wollte eine kurze Rückmeldung geben. Nachdem ich die Spalten an meine Situation angepasst hab, hat alles auf Anhieb funktioniert. Ich habe zwar nur einen kleinen Test gemacht, aber es sieht genau so aus wie gewünscht.

Vielen Dank an pguser. (Ich werde das nächste Mal meine Frage konkreter formulieren.)

Schöne Grüße
Johannes
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten aus 5 Tabellen kombinieren -> neue Tabelle schreiben stefando MySQLi/PDO/(MySQL) 2 01.03.2012 21:26:58
Daten aus 2 Tabellen sortieren Jaecko MySQLi/PDO/(MySQL) 1 10.08.2009 16:10:47
Daten aus csv-Datei in zwei Tabellen speichern sputnik72 PHP Grundlagen 6 13.08.2007 16:12:15
daten aus 2 tabellen strubel123 PHP Grundlagen 3 25.03.2004 20:55:56
Daten aus 2 Tabellen verknüpfen (Newbie-Frage) LouCypher PHP für Fortgeschrittene und Experten 3 12.01.2003 18:55:28


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:36:08 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt