SELECT-Frage (mysql)
Nuke
- datenbank
1 Rouven0 Nuke
0 _King Lully0 Ilja
Folgendes Beispiel arbeitet mit zwei Tabellen:
SELECT name FROM users, sessions WHERE users.wohnort = sessions.wohnort AND sessions.user = 'Nuke'
Das oben genannte Beispiel zeigt dann alle users an, deren wohnort derselbe ist wie der von sessions.users='Nuke'.
Jetzt würde mich mal interessieren, ob das ganze auch innerhalb einer einzigen Tabelle funktioniert?
SELECT name FROM users WHERE wohnort = wohnort AND user = 'Nuke'
Das Ziel: Ich möchte alle Datensätze ausgeben, deren Wohnort derselbe ist, wie der von 'Nuke'.
Hat jemand eine Idee wie man das mit einem Statement machen ohne dass ich vorher in einem extra statement den wohnort von Nuke ermitteln muss??
Geht das überhaupt?
Hello,
Hat jemand eine Idee wie man das mit einem Statement machen ohne dass ich vorher in einem extra statement den wohnort von Nuke ermitteln muss??
Geht das überhaupt?
Ja, und zwar mit einem Self-Join
MfG
Rouven
Na besten Dank :-)
Hoffe nur, dass der INNER JOIN nicht für jeden einzelnen Datensatz durchgeführt wird. Brauche nämlich nur einen Wert (t1.id = t2.id)
SELECT name FROM users WHERE wohnort = wohnort AND user = 'Nuke'
Das Ziel: Ich möchte alle Datensätze ausgeben, deren Wohnort derselbe ist, wie der von 'Nuke'.
Geht sowas?
SELECT
name
FROM
users
WHERE
(
wohnort =
(
SELECT
wohnort
FROM
users
WHERE
(name = 'Nuke')
)
)
Wichtig, dass es nur einen 'Nuke' gibt. ;)
yo,
Das Ziel: Ich möchte alle Datensätze ausgeben, deren Wohnort derselbe ist, wie der von 'Nuke'.
viele wege führen nach rom, ob self-join oder unterabfrage. wichtig ist nur, dass du nicht vergisst, den vergleich des selben datensatzes auszuschließen, sprich das der wohnort von nuke nicht mit dem wohnort von nuke überprüft wird, weil der wäre ja immer gleich.
Ilja
Das Ziel: Ich möchte alle Datensätze ausgeben, deren Wohnort derselbe ist, wie der von 'Nuke'.
viele wege führen nach rom, ob self-join oder unterabfrage.
Was ist denn besser?