Delphi-PRAXiS
Seite 1 von 2  1 2      

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:03

Datenbank: MySQL • Zugriff über: PHP

Zwei Tabellen verknüfen
 
Ich habe zwei Tabellen:
Tabelle adressen:
Code:
name
vorname
kategorie_id
Tabelle adr_kategorien:
Code:
id
name
Wenn ich jetzt einen Datensatz abspeichere wird die ID der Kategorie in dem Feld kategorie_id abgelegt.

Jetzt will ich alle Datensätze aus der Tabelle adressen, die einer bestimmten Kategorie entsprechen. Die Kategorie liegt dabei als Text vor und nicht als ID der Tabelle. Was ich im Internet gefunden habe:
Code:
SELECT adressen.*
FROM adressen
INNER JOIN adr_kategorien
WHERE adr_kategorien.name='Geschäftlich'
Das funktioniert leider nicht. Führe ich den Query aus, bekomme ich alle Datensätzen.

Dann versuche ich noch zu einem Datensatz aus der Tabelle adressen die zugehörige Kategorie (Namen) zur KategorieID zu bekommen.

arbu man 14. Nov 2009 10:07

Re: Zwei Tabellen verknüfen
 
Das sollte mit einem einfach join gehen z.b. so
SQL-Code:
select a.* -- oder adressen.*
from adressen a, adr_kategorien k
where a.kategorie_id = k.id and k.name = 'Geschäftlich'

fkerber 14. Nov 2009 10:11

Re: Zwei Tabellen verknüfen
 
Hi!

Wenn ich dich richtig verstanden habe, dann versuche mal das:

SQL-Code:
SELECT adressen.*
FROM adressen
JOIN adr_kategorien ON adressen.kategorie_id = adr_kategorien.name
WHERE adr_kategorien.name='Geschäftlich'
Zu deinem zweiten Problem:
Was hast du denn von dem Datensatz aus Adressen? Nur Name und Vorname?


Grüße, Frederic

mkinzler 14. Nov 2009 10:12

Re: Zwei Tabellen verknüfen
 
Oder besser in der neueren Syntax als expliziten JOIN
SQL-Code:
SELECT
    a.*
FROM
    adressen
        INNER JOIN adr_kategorien k on k.id a.kategorie_id
WHERE
    adr_kategorien.name='Geschäftlich';

DeddyH 14. Nov 2009 10:20

Re: Zwei Tabellen verknüfen
 
Aber dann den Alias a nicht vergessen:
SQL-Code:
SELECT
    a.*
FROM
    adressen a
        INNER JOIN adr_kategorien k on k.id a.kategorie_id
WHERE
    adr_kategorien.name='Geschäftlich';

mkinzler 14. Nov 2009 10:23

Re: Zwei Tabellen verknüfen
 
in weiterer Grund gegen C&P
SQL-Code:
SELECT
    a.*
FROM
    adressen a
        INNER JOIN adr_kategorien k on k.id a.kategorie_id
WHERE
    k.name='Geschäftlich';

DeddyH 14. Nov 2009 10:24

Re: Zwei Tabellen verknüfen
 
:lol: wir nähern uns der Lösung ^^

Luckie 14. Nov 2009 10:26

Re: Zwei Tabellen verknüfen
 
Also ich habe es jetzt wie arbu man gemacht. Das funktioniert.

Bleibt noch der zweite Query. Also dass er mir den Kategorienamen passend zur ID mit ausgibt zu den anderen Feldern.

DeddyH 14. Nov 2009 10:30

Re: Zwei Tabellen verknüfen
 
Meinst Du so?
SQL-Code:
SELECT
    k.name, a.*
FROM
    adressen a
        INNER JOIN adr_kategorien k on k.id a.kategorie_id
WHERE
    k.name='Geschäftlich';

mkinzler 14. Nov 2009 10:30

Re: Zwei Tabellen verknüfen
 
Einfach Feld mit angeben:
SQL-Code:
SELECT
    a.*,
    k.name
FROM
    adressen a
        INNER JOIN adr_kategorien k on k.id a.kategorie_id
WHERE
    k.name='Geschäftlich';


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:55 Uhr.
Seite 1 von 2  1 2      

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