phpbar.de logo

Mailinglisten-Archive

=?iso-8859-1?Q?AW:_join_=FCber_3_tabellen?=

AW: join über 3 tabellen

Matthias Bruns mysql-de_(at)_lists.bttr.org
Mon, 23 Sep 2002 23:27:00 +0200


Hallo Andreas,
es fängt sch damit an, das ich die Tabellen anders aufbauen würde.

tab_nam: companies
cmp_idn	(int) PK
brc_idn	(int)
cmp_nam	(varchar)

tab_nam: branches
brc_idn	(int) PK
brc_nam	(varchar)

tab_nam: adresses
adr_idn	(int) PK
cmp_idn	(int)
adr_str	(varchar)

Eine Company gibt es nur 1x.
Branches gibt es viele, aber ohne direkte Zuordnung.
Adressen gibt es uU für jede Company mehrfach.

Dann sieht der SQL-String folgendermaßen aus:

SELECT c.cmp_nam, b.brc_nam, a.adr_str
FROM companies c
	inner join branches b on c.brc_idn=b.brc_idn
	inner join adresses a on c.cmp_idn=a.cmp_idn

Ich denke, so müßte es funktionieren.

Viel Erfolg.
Gruß
Matthias


-----Ursprüngliche Nachricht-----
Von: Andreas Stagl [mailto:a.stagl_(at)_gmx.at]
Gesendet: Montag, 23. September 2002 20:33
An: mysql-de_(at)_lists.4t2.com
Betreff: join über 3 tabellen



hi there!

irgendwie kappier ich das mit den joins nicht... oder ich steh mal wieder
auf der leitung.

ich hab 3 tabellen:

tab_nam: companies
cmp_idn (int) PK
cmp_nam (varchar)

tab_nam: branches
brc_idn (int) PK
cmp_idn (int)
brc_nam (varchar)

tab_nam: adresses
adr_idn (int) PK
brc_idn (int)
adr_str (varchar)

companies und branches werden über das feld cmp_idn verbunden, branches und
adresses über das feld brc_idn, wobei beide 'relations' als 1:n zu
verstehen sind; sprich eine company kann mehrere oder aber auch keine (weil
eben noch keine in die db eingepflegt) branchen haben, eine branche
wiederum kann mehrere oder keine addresse haben.

nun hätt ich gern ein ergebnis, in folgender form

cmp_nam	brc_nam	adr_str
------------------------------------------------------------
compaq	headquarter	strasse a
compaq	entwicklung	strasse b
compaq	entwicklung	strasse c
microsoft	headquarter	NULL
microsoft	verkauf		NULL
zend		NULL		NULL
...		...		...

hat hierfür vielleicht jemand eine query parat? schon mal danke im voraus.

lg aus wien,
andy

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive