darkrider02
Benutzer
- Beiträge
- 6
Hallo Zusammen
Ich erstelle gerade eine MySQL-Datenbank für ein Projekt über Cybersecurity-Richtlinien. Dazu habe ich eine Datenbank erstellt mit folgender Struktur (Siehe Anhang). Es sind 4 Hilfstabellen dazwischen um die m zu m Beziehungen aufzulösen.
Man kann nun über ein HTML-Formular anwählen, zu welchen Kategorien man eine Richtlinie sucht und mittels PHP wird diese dann in der MySQL-Datenbank gesucht.
Nun möchte ich eine Abfrage gestalten, bei der man die Infos der Richtlinien angezeigt bekommt und die mit der Auswahl im HTML-Formular übereinstimmt. Als Beispiel habe ich ausgewählt, dass es mir Richtlinien mit Akteur "Entwickler", Art der Richtlinie "Technisch", Gebäudetyp "Flughafen" und Anwendung "Datenschutz" anzeigen soll.
Wie sieht hier die Abfrage aus? Habe es mit einem Join über alle Tabellen versucht, aber nun stehe ich an.. Ist die Abfrage komplett falsch, liegt es an dem Datentyp BIT oder sonst etwas?
SELECT r.RichtlinienID, r.Autor, r.Titel, r.Publishdate, r.Summary, r.Link FROM Richtlinien r
INNER JOIN AkteureRichtlinien ar1 ON r.RichtlinienID = ar1.RichtlinienID_fk
INNER JOIN Akteure ak ON ar1.Akteure_fk = ak.AkteureID
INNER JOIN ArtRichtlinien art1 ON r.RichtlinienID =art1.RichtlinienID_fk
INNER JOIN ArtRichtlinie art ON art1.Art_fk = art.ArtID
INNER JOIN GebaeudeRichtlinien typ1 ON r.RichtlinienID=typ1.RichtlinienID_fk
INNER JOIN Gebaeudetyp typ ON typ1.Typ_fk = typ.TypID
INNER JOIN AnwendungRichtlinien an1 ON r.RichtlinienID = an1.RichtlinienID_fk
INNER JOIN Anwendung an ON an1.Anwendung_fk = an.AnwendungID
WHERE ak.entwickler = 1 AND art.technisch = 1 AND typ.flughafen = 1 AND an.datenschutz = 1
ORDER BY RichtlinienID
Momentan erhalte ich zwar keine Fehlermeldung, jedoch wird auch kein Datensatz angezeigt, obwohl einer mit solchen Werten vorhanden ist.
Danke für eure Hilfe!
Ich erstelle gerade eine MySQL-Datenbank für ein Projekt über Cybersecurity-Richtlinien. Dazu habe ich eine Datenbank erstellt mit folgender Struktur (Siehe Anhang). Es sind 4 Hilfstabellen dazwischen um die m zu m Beziehungen aufzulösen.
Man kann nun über ein HTML-Formular anwählen, zu welchen Kategorien man eine Richtlinie sucht und mittels PHP wird diese dann in der MySQL-Datenbank gesucht.
Nun möchte ich eine Abfrage gestalten, bei der man die Infos der Richtlinien angezeigt bekommt und die mit der Auswahl im HTML-Formular übereinstimmt. Als Beispiel habe ich ausgewählt, dass es mir Richtlinien mit Akteur "Entwickler", Art der Richtlinie "Technisch", Gebäudetyp "Flughafen" und Anwendung "Datenschutz" anzeigen soll.
Wie sieht hier die Abfrage aus? Habe es mit einem Join über alle Tabellen versucht, aber nun stehe ich an.. Ist die Abfrage komplett falsch, liegt es an dem Datentyp BIT oder sonst etwas?
SELECT r.RichtlinienID, r.Autor, r.Titel, r.Publishdate, r.Summary, r.Link FROM Richtlinien r
INNER JOIN AkteureRichtlinien ar1 ON r.RichtlinienID = ar1.RichtlinienID_fk
INNER JOIN Akteure ak ON ar1.Akteure_fk = ak.AkteureID
INNER JOIN ArtRichtlinien art1 ON r.RichtlinienID =art1.RichtlinienID_fk
INNER JOIN ArtRichtlinie art ON art1.Art_fk = art.ArtID
INNER JOIN GebaeudeRichtlinien typ1 ON r.RichtlinienID=typ1.RichtlinienID_fk
INNER JOIN Gebaeudetyp typ ON typ1.Typ_fk = typ.TypID
INNER JOIN AnwendungRichtlinien an1 ON r.RichtlinienID = an1.RichtlinienID_fk
INNER JOIN Anwendung an ON an1.Anwendung_fk = an.AnwendungID
WHERE ak.entwickler = 1 AND art.technisch = 1 AND typ.flughafen = 1 AND an.datenschutz = 1
ORDER BY RichtlinienID
Momentan erhalte ich zwar keine Fehlermeldung, jedoch wird auch kein Datensatz angezeigt, obwohl einer mit solchen Werten vorhanden ist.
Danke für eure Hilfe!
Anhänge
Zuletzt bearbeitet: