Gibt es dafür einen MySQL Befehl?
Hallo, ich komme bei einem speziellen Problem leider nicht weiter und hoffe, ihr könnt mir helfen!
Ich schreibe eine Seite in php mit MySQL Datenbank.
Nun bräuchte ich einen Befehl, der etwa so aussehen müsste:
Wenn in Spalte "a" ein bestimmter Wert steht, guck was in Spalte "b" steht und gib alle Datenreihen aus, die in Spalte "b" den gleichen Wert wie das vorherige "b" haben.
Mit zwei sql Abfragen müsste ich es hinbekommen:
Select 'b' Where 'a' = wert
Select * Where b = erstes ergebnis
Aber da ich noch im lernen bin, würde es mich interessieren, ob man das ganze auch in einer Abfrage unterbringen kann.
(wahrscheinlich wieder ein kleiner Trick, der mir vorher nicht bekannt war ;) )
Lg, Florian
Ich schreibe eine Seite in php mit MySQL Datenbank.
Nun bräuchte ich einen Befehl, der etwa so aussehen müsste:
Wenn in Spalte "a" ein bestimmter Wert steht, guck was in Spalte "b" steht und gib alle Datenreihen aus, die in Spalte "b" den gleichen Wert wie das vorherige "b" haben.
Mit zwei sql Abfragen müsste ich es hinbekommen:
Select 'b' Where 'a' = wert
Select * Where b = erstes ergebnis
Aber da ich noch im lernen bin, würde es mich interessieren, ob man das ganze auch in einer Abfrage unterbringen kann.
(wahrscheinlich wieder ein kleiner Trick, der mir vorher nicht bekannt war ;) )
Lg, Florian
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 154254
Url: https://administrator.de/contentid/154254
Ausgedruckt am: 26.11.2024 um 18:11 Uhr
13 Kommentare
Neuester Kommentar
Zitat von @Letavino:
Danke schonmal für die Antwort!
Aber, wenn ich "WHERE DATENBANK.A = [WERT]" schreibe,
kommen als Ergebnis ja nur solche Datenreihen, die diesen Wert in der Datenbank 'a' stehen haben., oder nicht?
Ich hätte aber auch gerne alle Datenreihen, bei denen der Wert b mit dieser Reihe übereinstimmt.
Lg
Danke schonmal für die Antwort!
Aber, wenn ich "WHERE DATENBANK.A = [WERT]" schreibe,
kommen als Ergebnis ja nur solche Datenreihen, die diesen Wert in der Datenbank 'a' stehen haben., oder nicht?
Ich hätte aber auch gerne alle Datenreihen, bei denen der Wert b mit dieser Reihe übereinstimmt.
Lg
Das ist ein verknüpfter Ausdruck...
WHERE DATENBANK.A = [WERT] AND DATENBANK.B = DATENBANK.A
Nur wenn beide Bedingungen erfüllt sind wir der Datensatz selektiert.
Am einfachsten geht es mit einer verschachtelten Abfrage:
SELECT * FROM Tabellenname where b = (SELECT b from Tabellenname where a='BESTIMMTERWERT')
|"""""Datenbank""""""" |
| |""Tabellenname"""| |
| | |"""""a""""|""""b"""""| | |
| | |----0-----|----1-----| | |
| | |----1-----|----2-----| | |
| | |----2-----|----3-----| | |
| | |----3-----|----1-----| | |
Ausgabe:
|a|b|
|0|1|
|3|1|
Getestet und läuft
MfG
SELECT * FROM Tabellenname where b = (SELECT b from Tabellenname where a='BESTIMMTERWERT')
|"""""Datenbank""""""" |
| |""Tabellenname"""| |
| | |"""""a""""|""""b"""""| | |
| | |----0-----|----1-----| | |
| | |----1-----|----2-----| | |
| | |----2-----|----3-----| | |
| | |----3-----|----1-----| | |
Ausgabe:
|a|b|
|0|1|
|3|1|
Getestet und läuft
MfG
Damit ich das richtig verstehe,
du hast in der Tabelle jetzt die angenommenen Werte:
| a | b |
| 0 | 1 |
| 1 | 2 |
| 2 | 3 |
| 3 | 1 |
| 0 | 2 |
Der Eingabewert bleint bei '0' und du möchtest in dem Falle die Ausgabe:
| a | b |
| 0 | 1 |
| 3 | 1 |
| 0 | 2 | <- Oder hierzu dann auch alle Datensätze bei denen b=2 ist?
Oder liege ich mit der Annahme daneben?
MfG
du hast in der Tabelle jetzt die angenommenen Werte:
| a | b |
| 0 | 1 |
| 1 | 2 |
| 2 | 3 |
| 3 | 1 |
| 0 | 2 |
Der Eingabewert bleint bei '0' und du möchtest in dem Falle die Ausgabe:
| a | b |
| 0 | 1 |
| 3 | 1 |
| 0 | 2 | <- Oder hierzu dann auch alle Datensätze bei denen b=2 ist?
Oder liege ich mit der Annahme daneben?
MfG