SQL Zwei SQL-Befehle kombinieren?

Dsimon24

Lt. Junior Grade
Dabei seit
Aug. 2016
Beiträge
409
Guten Morgen zusammen!

Ich versuche gerade zwei SQL-Befehle zu kombinieren.
Leider fehlt mir dazu aber das Wissen, wie ich dies realisieren kann.
Vielleicht kann mich einer mit einem Tipp auf den richtigen Weg bringen?

Ich habe in einer Datenbank zwei Tabellen (Liste & User).

Liste ist so aufgebaut:
id, listenID, userKuerzel, ...

User ist so aufgebaut:
id, userKuerzel, zuteilung, ...

Jetzt habe ich die folgende Abfrage:
SELECT id, listenID, userKuerzel FROM liste WHERE userKuerzel='$user_init';
Die Variable $user_init enthält das userKuerzel des eingeloggten Benutzers.
So erhalte ich alle Datensätze von dem Benutzer, der eingeloggt ist.

Der eingeloggte Benutzer hat als Zuteilung bspw. 'X'.
Jetzt möchte ich nicht alle Datensätze des eingeloggten Benutzers erhalten,
sondern alle Datensätze, deren Benutzer die Zuteilung 'X' haben.

Kann man so etwas realisieren?

VG, David
 

Madman1209

Fleet Admiral
Dabei seit
Nov. 2010
Beiträge
25.311
Hi,

du willst alle Datensätze aus "User" für den aktuellen Benutzer, bei dem "Zuteilung" einen bestimmtem Wert hat? Dann nimm deine Abfrage, benutze ein "JOIN" und schränke die Selektion am Ende noch mit dem "WHERE zuteilung='X'" ein.

"JOIN" ist also das Stichwort, zumindest wenn ich deine Anforderung richtig verstanden habe. Mach dich darüber schlau.

Falls ich deine Anforderung falsch verstanden habe bitte nochmal Feedback geben.

VG,
Mad
 

fReAkgoesCB

Lt. Junior Grade
Dabei seit
Juli 2011
Beiträge
275
SELECT liste.*
FROM liste INNER JOIN user ON liste.userKuerzel = user.userKuerzel
WHERE user.zuteilung = "X"
 

Drexel

Lt. Commander
Dabei seit
Jan. 2012
Beiträge
1.216
Oder Du fragst einfach in derUuser Tabelle ab, ob der eingelogte User die Zuteilung X hat, wenn nicht kannst Du Dir die Abfrage der zweiten Tabelle komplett sparen. Da die Zuteilung am User hängt und Du nur einen User abfragst, bekommst entweder alle seine Listendatensätze oder keinen.
 

ayngush

Lt. Commander
Dabei seit
Okt. 2007
Beiträge
1.602
$user_init = "null' OR 1=1; DELETE FROM liste; --";

+

SELECT id, listenID, userKuerzel FROM liste WHERE userKuerzel='$user_init';
= keine Listen mehr :)

Wenn Du schon dabei bist dich in SQL und PHP einzuarbeiten, arbeite dich gleich in PDO und Prepared Statements mit ein, auch um deine Anwendung gegen SQL-Injections abzusichern.

Grüße
 
Top