Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [SQL] Hilfe bei Verknüpfung zweier Tabellen (https://www.delphipraxis.net/138162-%5Bsql%5D-hilfe-bei-verknuepfung-zweier-tabellen.html)

Nicolai1234 4. Aug 2009 15:22


[SQL] Hilfe bei Verknüpfung zweier Tabellen
 
Hallo,

ich muss mich leider mit einem nicht-Delphi Thema an euch wenden. Ich helfe momentan bei einer Internetseite aus und muss mich dort mit PHP und einer mysql-Datenbank rumschlagen, obwohl das nicht mein Spezialgebiet ist :) Daher hoffe ich, dass ihr mir helfen könnt. Die Grundlagen habe ich soweit alle verstanden und eigentlich klappt auch alles ganz gut, nur an einer Stelle komme ich nicht weiter. Es geht um folgendes:

Ich habe zwei Tabellen:
Tabelle1: uid - gid
Tabelle2: uid - name - punkte - etc..

Es sind also zwei Tabellen, in denen jeweils die Spalte uid (User-ID) gleich ist.

Momentan frage ich Daten aus Tabelle2 so ab:
SQL-Code:
SELECT * FROM Tabelle2
Jetzt möchte ich aber, dass nur die Datensätze ausgewählt werden, bei denen dem User eine bestimmte gid zugeordnet ist.
Soll quasi so aussehen: (mir ist klar, dass es so leider nicht geht :( )
SQL-Code:
SELECT * FROM Tabelle2 WHERE gid = 1
Wie kann man denn die beiden Tabellen miteinander verknüpfen, dass die Abfrage richtig ist? Ich Blick da leider nicht ganz durch und hoffe auf eure Hilfe :)

Vielen Dank im Voraus

Bernhard Geyer 4. Aug 2009 15:26

Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen
 
Du benötigst einen INNER JOIN

DeddyH 4. Aug 2009 16:12

Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen
 
Entweder ("alte" Syntax):
SQL-Code:
SELECT T1.*, T2.*
FROM Tabelle1 T1, Tabelle2 T2
WHERE T2.uid = T1.uid
AND T1.gid = 1
oder
SQL-Code:
SELECT T1.*, T2.*
FROM Tabelle1 T1
JOIN Tabelle2 T2 ON T2.uid = T1.uid
WHERE T1.gid = 1

Nicolai1234 5. Aug 2009 22:30

Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen
 
Vielen Dank, habs gestern noch mit dem INNER JOIN hinbekommen

Was bedeutet das alte Syntax bei deiner anderen Lösung? Geht die auch, aber stilistisch ist die andere besser? Und wenn ja, wer bestimmt, was stilistisch schöner ist? :)

omata 5. Aug 2009 23:12

Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen
 
Die neue Syntax finde ich wesentlich schöner.
Alt und neu funktionieren bezogen auf den EQUI-JOIN in allen Datenbanken. Nur der OUTER-JOIN funktioniert in der alten Syntax nur in Oracle (Plus-Operator) sonst leider nicht. Deshalb würde ich immer die neue Variante verwenden und mir dort auch nur den LEFT-JOIN merken, der RIGHT-JOIN ist überflüssig.

mkinzler 6. Aug 2009 05:31

Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen
 
Man kann bei den expliziten Joins viel genauer steuern wie verknüpft wird. Implizit geht ja nur ein INNER JOIN ( Ausnahme Oracle, wie omata schon geschrieben hat)
Zitat:

nur den LEFT-JOIN merken, der RIGHT-JOIN ist überflüssig.
So pauschal würde ich das nicht sehen

omata 6. Aug 2009 11:18

Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen
 
Zitat:

Zitat von mkinzler
So pauschal würde ich das nicht sehen

Ich schon, die letzten 9 Jahre bin ich ohne ausgekommen. Die beiden JOINs unterscheiden sich ja nur in der Syntax, also welche Seite der Verknüpfung wird mit NULL aufgefüllt.

Edit: Man kann sich das Leben natürlich auch schwerer machen, und beide verschachtelt benutzen (siehe Access)

mkinzler 6. Aug 2009 11:21

Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen
 
Es könnte aber ein Fall audtreten, wo man es benötigt.
Es ist wie mit While vs Repeat..Until, man kann das meiste mit einer Schleifenart lösen.

HeikoAdams 6. Aug 2009 11:24

Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen
 
Zitat:

Zitat von mkinzler
Zitat:

nur den LEFT-JOIN merken, der RIGHT-JOIN ist überflüssig.
So pauschal würde ich das nicht sehen

Naja, wenn ich die Join-Bedingungen eines LEFT-JOINs vertausche und aus
SQL-Code:
... FROM a LEFT OUTER JOIN b ...
ein
SQL-Code:
... FROM b LEFT OUTER JOIN a ...
mache, dann hab ich ja quasi auch nen RIGHT-JOIN :wink:

BTW: Bislang bin ich auch ganz gut ohne RIGHT-JOINs augekommen 8)

alzaimar 6. Aug 2009 11:38

Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen
 
Also wenn ich auf die Schnelle eine Query aus diversen Tabellen zusammentippe, passiert es mir einfach, das ich irgendwann ein RIGHT JOIN brauche. Ich könnte zwar die Logik umdrehen, und von vorne anfangen, um puristisch auf das RIGHT JOIN zu verzichten, aber Zeit ist Geld und so gehts eben.

Nööööötig issses nicht, aber der Vollständigkeit halber vorhanden und praktisch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:10 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