PDA

Vollstndige Version anzeigen : SQL Abfrage (INNER JOIN)


AlexWeber
06-10-2003, 14:44
Hallo Leute,
Helft mir bitte wer kann.
Mein Problem sieht so aus:
Ich habe in meine Haupttabelle mehrere Verbindungen.
Abfragen kann ich die mit INNER JOIN und es funktioniert einwandfrei solange ich nur 1-n INNER JOIN Befehl in der Abfrage habe, ich brauche dagegen mehrere. Und das geht irgend wie bei mir nicht. Sagt mir mal bitte was ich falsch mache...
$sql="SELECT * FROM `immobilienart` INNER JOIN ( `kategorie` INNER JOIN `objekt` ON `kategorie`.`kategorie_id` = `objekt`.`kategorie` ) ON `immobilienart`.`immobilien_id` = `objekt`.`art`";
Bin fr jeden Ratschlag dankbar,
Danke.
Gre,
Alex...

MiH
06-10-2003, 16:54
SELECT * FROM immobilienart
INNER JOIN kategorie on kategorie.kid = immobilienart.kid
INNER JOIN objekt on objekt.art = immobilienart.art;

du mut halt wissen, welche tabellen verknpft werden sollen.
dabei solltest du beachten, das die verknpfenden felder immer vom gleichen typ sind und in jeder tabelle gleich heien.
das beispiel oben soll dir einfach nur zeigen wie es geht. funktionieren wird es nicht, da ich die struktur nicht kenne aber einen lsungsweg findest du so.

AlexWeber
06-10-2003, 17:02
Hi Danke Danke Danke fr deine Hilfe,
ich weis das man auf die Feldtypen achten muss, und auf die richtungen, aber irgendwie klapte es nicht, aber jetzt habe ich ein Muster und glaube dass das klapt Danke nochmals!!!
Gre,
Alex...

AlexWeber
06-10-2003, 17:22
Tut mir Leid aber es funktioniert NICHT...

Ich habe mit Access eine Abfrage die ich brauche gemacht aber jetzt muss ich die SQL in MY_SQL Code berschreiben und das gelingt mir nicht. Vielleicht kann mir jemand helfen ???????????
Abfage: SELECT haus.haus_id, haus.object_nr
FROM heizung INNER JOIN (detail INNER JOIN haus ON detail.DETAIL_ID = haus.detail) ON heizung.heizung_id = haus.heizung;

Gre,
Alex...

MiH
07-10-2003, 09:38
deine abfrage ist wieder schrott.

SELECT haus.haus_id, haus.object_nr FROM heizung
inner join haus ON heizung.heizung_id = haus.heizung;
INNER JOIN detail ON detail.DETAIL_ID = haus.detail;

deine db mchte ich nicht wirklich sehen, da es sicherlich ne katastrophe ist, die dir ziehmlich bald auf die fe fllt.

AlexWeber
08-10-2003, 00:26
die Datenbank ist alles andere aber kein schrott.
Das kanst du sehen wenn du den link anklickst, die datai habe ich nur fr dich hochgeladen "http://test.p15114068.pureserver.info/temp/AlexWeb/db_entwurf.htm" und wenndu dannach trotzdem sagst dass die Datenbank schrott ist, dann .... hmmm ... , es ist eine relationale Datenbank...
Ubrigens danke fr dein vorschlag, aber ist auch nicht richtig...
Viele Gre,
Alex...

MiH
08-10-2003, 09:10
ok nach dem ich mir das mal angesehen habe. mu ich dir sagen das ziehmlich viel unglcklich gewhlt wurde.

char() wird bei dir sowieso zu varchar.
preis (CHAR 55)
nebenkosten (CHAR 55)
kaution (CHAR 55)
maklerprovision (FLOAT)

- warum nimmt man fr zahlenwerte char() und dann doch auch mal float()?
- foto 1 - 12
es wre hier vielleicht auch sinnvoller gewesen, das ganze in einen array zu packen. so kann man das in einer spalte ablegen. wichtig sind ja nur die bildnamen.

- partner_anrede (CHAR 25)
kann eigentlich nur 'Herr','Frau','Firma' sein.
von daher ist ENUM() schon der bessere typ.

-stellplatz (CHAR 3)
hier ist enum() genau der richtige typ.

naja das knnte man noc weiter ausfhren aber da drauf hab ich keine lust. meine vermutung war somit also nicht ganz verkehrt :)