![]() |
[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:
Jetzt möchte ich aber, dass nur die Datensätze ausgewählt werden, bei denen dem User eine bestimmte gid zugeordnet ist.
SELECT * FROM Tabelle2
Soll quasi so aussehen: (mir ist klar, dass es so leider nicht geht :( )
SQL-Code:
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 :)
SELECT * FROM Tabelle2 WHERE gid = 1
Vielen Dank im Voraus |
Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen
Du benötigst einen
![]() |
Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen
Entweder ("alte" Syntax):
SQL-Code:
oder
SELECT T1.*, T2.*
FROM Tabelle1 T1, Tabelle2 T2 WHERE T2.uid = T1.uid AND T1.gid = 1
SQL-Code:
SELECT T1.*, T2.*
FROM Tabelle1 T1 JOIN Tabelle2 T2 ON T2.uid = T1.uid WHERE T1.gid = 1 |
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? :) |
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. |
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:
|
Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen
Zitat:
Edit: Man kann sich das Leben natürlich auch schwerer machen, und beide verschachtelt benutzen (siehe Access) |
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. |
Re: [SQL] Hilfe bei Verknüpfung zweier Tabellen
Zitat:
SQL-Code:
ein
... FROM a LEFT OUTER JOIN b ...
SQL-Code:
mache, dann hab ich ja quasi auch nen RIGHT-JOIN :wink:
... FROM b LEFT OUTER JOIN a ...
BTW: Bislang bin ich auch ganz gut ohne RIGHT-JOINs augekommen 8) |
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 01:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz