Abfrage über zwie strukturell identische Tabellen

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Abfrage über zwie strukturell identische Tabellen

Postby Knight1 » 02. April 2008 07:08

Hi AF-Com,
ich stehe da vor einem Problem.

Ich arbeite an einem Vereins-Portal.
In diesem Portal gibt es eine Mitglieder-Verwaltung. Diese Mitglieder-Verwaltung beinhaltet auch die Möglichkeit Kontakt-Daten einzutragen.
Dafür habe ich für jede Art der Kontakt-Aufnahme jeweils eine eigene Tabelle angelegt wo ich die Daten abspeichere.
Folgendermaßen habe ich es auf geteilt:
Private Telefonnummer(n)
Berufliche Telefonnummer(n)
Private Faxnummer(n)
Berufliche Faxnummer(n)
Private Handynummer(n)
Berufliche Handynummer(n)
Private E-Mail-Adresse(n)
Berufliche E-Mail-Adresse(n)
Für vorhandene Homepage-Adresse(n) gibts nur eine Tabelle.

Mir geht es jetzt um die Abfrage der E-Mail-Adresse(n) aus beiden Tabellen in einem einzigen SQL-Statement.

Beide Tabellen haben eine identische Struktur:

id (auto_increment)
email_adress (mediumtext)
member_id
logs
newsletter

Ich übergebe die Mitglieder-ID.

Wie ich mir aus einer einzelnen Tabelle bestimmte Datensätze zurückliefern lasse, ist kein Problem. Das ist ja ein einfacher SELECT.
Was muss ich aber schreiben um MySQL dazu zu bringen mir die entsprechenden Datensätze aus beiden Tabellen über einen Query zu liefern?

Bitte helft mir.


Kai aka Knight1
Last edited by Knight1 on 02. April 2008 09:08, edited 1 time in total.
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby Hanspeter Thöni » 02. April 2008 09:01

Mal abgesehen davon, ob deine Aufteilung sinn macht sind Abfragen über mehrere Tabellen in ein Resultat möglich nämlich mit UNION SELECT

http://dev.mysql.com/doc/refman/5.1/de/union.html
Gruss Hanspeter
User avatar
Hanspeter Thöni
 
Posts: 233
Joined: 17. August 2004 10:29
Location: Schweiz

Postby Knight1 » 02. April 2008 09:09

Hanspeter Thöni wrote:Mal abgesehen davon, ob deine Aufteilung sinn macht sind Abfragen über mehrere Tabellen in ein Resultat möglich nämlich mit UNION SELECT

http://dev.mysql.com/doc/refman/5.1/de/union.html


Danke für Deine Antwort. Das funktioniert. :D

Wie würdest Du denn die Aufteilung machen?


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby Hanspeter Thöni » 02. April 2008 10:12

Bei mir gibt es eine Tabelle 'Kommunikation'. Dort sind Telefonnummer, Email-Adressen und www. adressen usw. abgelegt.
Um zu wissen was es jetzt ist wird ein 'Typ' Feld benötigt.
Somit kannst du mit einem einzelnen Select auf sämtliche Kommunikationsmöglichkeiten eines Mitgliedes zugreifen.

Also sieht die Tabelle etwa so aus:
Code: Select all
-----------------------------------------------
Mitglied_ID   | Typ       | Wert
-----------------------------------------------
1             | Tel P     | 044 / 777 777 777
1             | Tel G     | 033 / 666 666 666
1             | Mail p    | test@gugus.ch
2             | Tel P     | 000 / 777 777 777
usw.

Der Typ kann natürlich auch nur eine Zahl sein (1 = Telefon 2 = mail usw).
Bei mir ist der Typ selber dann auch wieder ein Fremdschlüssel auf eine Weitere Tabelle 'Kommunikationstyp'. Mach das ganze natürlich wieder etwas komplizierter.
Gruss Hanspeter
User avatar
Hanspeter Thöni
 
Posts: 233
Joined: 17. August 2004 10:29
Location: Schweiz


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 2 guests