SQL Zwei SQL-Befehle kombinieren?

Dsimon24

Lieutenant
Registriert
Aug. 2016
Beiträge
595
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
 
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
 
SELECT liste.*
FROM liste INNER JOIN user ON liste.userKuerzel = user.userKuerzel
WHERE user.zuteilung = "X"
 
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.
 
$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
 

Ähnliche Themen

Zurück
Oben