• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

select tabelle aus mehreren spalten

jumbo125

Mitglied
hallo mineinander.
als unerfahrener mysql schreiber stehe ich vor einem Problem.

ich habe mehrere tabellen mit 2 spalten(es sind mehr, aber nur zwei sind im diesem fall wichtig)

alle tabellen enthalten spalte : name und spalte join
nun möchte ich alle namen ausgeben welche den selben wert in der spalte join haben

ein bild im anhang

ausgabe wäre:
name.name dann object.name dann eigenschaft.name(alle drei haben den gleichen Wert in join)
name.name dann object.name dann eigenschaft.name(alle drei haben den gleichen Wert in join, also den nächsten)

wie kann ich das ausgeben?
 

Anhänge

  • tabelle.JPG
    tabelle.JPG
    26,9 KB · Aufrufe: 10
Werbung:
Ich versteh das Problem dabei nicht ganz? Du musst doch wie geschrieben die Tabellen joinen und die Werte vergleichen? Wie sieht denn dein Versuch dazu aus?
 
ich schaffe es einfach nicht. die drei tabellen: kunden, maschine, eigfenschaft. mit den einträgen von meinen Bild im vorherigen post.

versucht habe ich unteranderem diesen code:
$kundendaten = ("SELECT kunden.name AS kunde, maschinen.name AS maschine, eigenschaften.name AS eigenschaft FROM kunden JOIN maschinen on(kunden.joinID LIKE maschinen.joinID) JOIN eigenschaften on (maschinen.joinID = eigenschaften.joinID)");
$kunden = mysql_query($kundendaten) OR die(mysql_error());
while($name = mysql_fetch_assoc($kunden)){
echo $name['kunde']."-"; echo $name['maschine']."-"; echo $name['eigenschaft']."<br>";

ausgabe war:
franz-jean-blau
sissi-jean-blau
marc-jean-blau
franz-t-shirt-blau
sissi-t-shirt-blau
marc-t-shirt-blau
franz-haare-blau
sissi-haare-blau
marc-haare-blau
franz-jean-rot
sissi-jean-rot
marc-jean-rot
franz-t-shirt-rot
sissi-t-shirt-rot
marc-t-shirt-rot
franz-haare-rot
sissi-haare-rot
marc-haare-rot
franz-jean-blond
sissi-jean-blond
marc-jean-blond
franz-t-shirt-blond
sissi-t-shirt-blond
marc-t-shirt-blond
franz-haare-blond
sissi-haare-blond
marc-haare-blond
franz-haare-blond
sissi-t-shirt-rot
marc-jean-bla
die ausgabe sollte jedoch nur:
marc jean blau
franz haare blond
sissi t-shirt rot

sein. Ende
 
Werbung:
Mit einer einfachen INNER JOIN Abfrage bekommst du das Problem gelöst..

HTML:
    SELECT tabelle1.name AS tab1name,
           tabelle2.name AS tab2name,
           tabelle3.name AS tab3name
      FROM tabelle1
INNER JOIN tabelle2 ON tabelle1.id = tabelle2.id
INNER JOIN tabelle3 ON tabelle1.id = tabelle3.id
     WHERE tabelle1.name = o%

Aus allen 3 Tabellen wird jeweils nur der Name geholt, der mit einem O beginnt. Jedoch muss die ID von allen 3 Tabellen gleich sein.

(Ich weiß dass diese Aufteilung keinen Sinn macht, es ist nur ein Beispiel wie man INNER JOIN verwenden könnte).
 
Werbung:
Zurück
Oben