Problem mit JOIN

UnoDosTres

Erfahrenes Mitglied
Hi,

also ich habe eine DB mit 4 Tabellen:

kunden
mag
portal
ansprechpartner

in jeder Tabelle ist eine Spalte mit dem Namen firmenname
der in jeder Tabelle übereinstimmt. So werden die Daten zugeordnet.

Als Beispiel gebe ich einfach mal folgende Spalten an:

Tabelle kunden:
id
firmenname
kundennummer

Tabelle mag:
id
firmenname
size

Tabelle portal:
id
firmenname
datum

Tabelle ansprechpartner:
id
firmenname
name
tele

Wie lautet die Abfrage wenn ich all diese Daten auf einmal abfragen möchte?
Ich weiss das es mit JOIN geht. Aber wie mit 4 Tabellen?

SELECT kunden.id, kunden.firmenname,.....,....,ansprechpartner.firmenname,... FROM kunden LEFT JOIN ...dann weiss ich nicht mehr weiter :confused:

LG

u.d.t
 
OK. Hab es jetzt selber gelöst. Ich schreib die Abfrage jetzt mal hier rein, vieleicht kann es einer ja brauchen:

PHP:
 $abfrage = "SELECT * FROM kunden LEFT JOIN portal,mag,ansprechpartner ON (kunden.firmenname = ansprechpartner.firmenname) WHERE kunden.firmenname = '$kunde'";

Geht ein Update auch mit JOIN?
 
OK. Hab grade gemerkt das es doch nicht so funktioniert wie ich gedacht habe.

Die Join "geschichte" die ich aufgeschrieben habe funktioniert nicht. Es werden nicht alle Tabelle gejoined.
Hat jemand eine Idee?
 
statt einen JOIN zu verwenden kannst du auch mit subqueries arbeiten...

SELECT Vorname, Name, GebDat
FROM XYZ
WHERE GebDat = (SELECT GebDat
FROM XYZ
WHERE Telefon = '6432753');
-------------------------------------------------
Wenn du eine Liste aus allen Relationen haben möchtest (mehere Werte), die eine bestimmte Bedingung erfüllen.

SELECT k.telefon, Name, Vorname, a.Strasse, a.PLZ, a.Ort
FROM Kunden k, wohnen w, Adresse a
WHERE k.telefon = w.telefon
AND w.Nr = a.Nr;

Vielleicht hilfts
 
Also erstmal: Datenbanktechnisch ist eine idetntifizierung bzw. eine Verknüpfung über einen String (firmenname) humbuck. Wieso nimmst du nicht die id der Firma?

Nun aber zu deinem Problem:
Code:
SELECT k.id, k.firmenname, k.kundennummer, m.size, p.datum, a.name, a.tele 
FROM kunden AS k 
INNER JOIN mag AS m ON k.firmenname = m.firmenname 
INNER JOIN portal AS p ON k.firmenname = p.firmenname 
INNER JOIN ansprechpartner AS a ON k.firmenname = a.firmenname
 
Zuletzt bearbeitet:
Ja, bin ich seiner Meinung. Mit id lässt sich das alles n bissl genauer machen.

ein tip vieleicht:
Ich erstelle meine DB's immer extra in ner Accessdatei.
Access hat ne art "SQL-generator" man muss nur ein paar kleine änderungen in der Syntax ändern. Aber die JOIN sachen löst der ganz gut, gerade bei Abfragen mit >3 Tabellen, da es da fürs auge ein wenig unübersichtlich wird
 
Zurück