Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Zwei Tabellen verknüfen (https://www.delphipraxis.net/143363-zwei-tabellen-verknuefen.html)

Luckie 14. Nov 2009 10:38

Re: Zwei Tabellen verknüfen
 
Nein, nein.

Ungefiltert. Ich lasse mir alle Datensätze aus adressen ausgeben. Ich will aber nicht die ID der Kategorie da stehen haben, sondern den Namen der Kategorie. Mit der ID kann man ja nichts anfangen.

Neutral General 14. Nov 2009 10:41

Re: Zwei Tabellen verknüfen
 
Hi Luckie,

schau dir doch am besten mal an wie JOINs in SQL generell funktionieren. Musst du ein paar mal üben und dann hast du sicher den Bogen raus und du merkst dass das was du machen willst total einfach ist ;)

Gruß
Neutral General

mkinzler 14. Nov 2009 10:42

Re: Zwei Tabellen verknüfen
 
Dieser steht doch in k.name
Oder meinst du eine 2. Abfrage über alle Adressen, dann lasse einfach die where clause weg.

Luckie 14. Nov 2009 10:55

Re: Zwei Tabellen verknüfen
 
@Neutral General: Das Versuche ich auch gerade, habe aber so meine Schwierigkeiten damit.

@mkinzler:
Zitat:

Oder meinst du eine 2. Abfrage über alle Adressen, dann lasse einfach die where clause weg.
Ja das meinte ich.

Wenn ich das so mache:
Code:
$query = "SELECT a.*
                     FROM adressen a, adr_kategorien k
                     WHERE a.kategorie_id = k.id";
               $resultset = mysql_query($query);
               while($row = mysql_fetch_object($resultset))
               {
               
                  echo "<tr>
                     <td>[url='./details.php?id=".$row->id."']".$row->name."[/url]</td>
                     <td>[url='./details.php?id=".$row->id."']".$row->vorname."[/url]</td>
                     <td></td>
                     <td>".$row->priv_strasse."</td>
Bekomme ich nur alle Datensätze bei denen das feld kategorie_id nicht leer ist.

Das zweite Problem ist, wie greife ich dann auf das Ergebnis zu? Ich habe ja in beiden Tabellen das Feld name. Über
Code:
$row->...
wird es wohl nicht gehen oder?

mkinzler 14. Nov 2009 10:58

Re: Zwei Tabellen verknüfen
 
SQL-87 unterstützt nur inner joins. für outer Joins benötigst du die SQL-92 Syntax:
SQL-Code:
SELECT
    a.*,
    k.name as Kategorienname
FROM
    adressen a
        Left outer JOIN adr_kategorien k on k.id a.kategorie_id;

DeddyH 14. Nov 2009 10:59

Re: Zwei Tabellen verknüfen
 
Dann vergib doch Aliase auf die Felder, damit werden sie eindeutig identifizierbar.

Luckie 14. Nov 2009 11:06

Re: Zwei Tabellen verknüfen
 
Da muss was falsch sein:
Code:
$query = "SELECT
                     a.*,
                     k.name as k_name
                     FROM adressen a
                     LEFT OUTER JOIN adr_kategorien k on k.id a.kategorie_id";
Zitat:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource

mkinzler 14. Nov 2009 11:08

Re: Zwei Tabellen verknüfen
 
Lass mal das OUTER weg

DeddyH 14. Nov 2009 11:09

Re: Zwei Tabellen verknüfen
 
Da fehlt ein Gleichheitszeichen in der JOIN-Bedingung.

Luckie 14. Nov 2009 11:17

Re: Zwei Tabellen verknüfen
 
Zitat:

Zitat von DeddyH
Da fehlt ein Gleichheitszeichen in der JOIN-Bedingung.

Autsch, das hätte ich auch sehen müssen. Danke euch allen, jatzt habe ich, was ich brauche.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz