In der von dir gezeigten Aufgabe geht es darum, eine Datenbanktabelle zu erweitern und dann eine Abfrage auf dieser erweiterten Tabelle auszuführen. Sie haben einen SQL-Code zur Lösung einer Übungsaufgabe bereitgestellt, der aus zwei Teilen besteht:
Teil 1 ist die Modifikation einer bestehenden Tabelle Suchdetails durch Hinzufügung einer neuen Spalte Zugangsart_ID, die mit der neu erstellten Tabelle Zugangsarten über einen Fremdschlüssel verknüpft wird. Sie haben die Tabelle Zugangsarten richtig erstellt und die entsprechenden Daten eingefügt. Dann fügen Sie der Tabelle Suchdetails die neue Spalte Zugangsart_ID hinzu und setzen den Fremdschlüssel. Dieser Teil sieht korrekt aus.
Teil 2 ist eine Abfrage (SQL-Query), die alle frei zugänglichen Medien mit dem Schlagwort Sensorik und dem Fachgebiet IoT aus der Tabelle Suchdetails auswählt, wobei diese mit der Tabelle Fachgebiet verknüpft ist. Ihre Abfrage sieht grundsätzlich richtig aus, allerdings berücksichtigt sie nicht die neu eingefügte Spalte Zugangsart_ID. Statt die Verfügbarkeit als String 'frei zugänglich' zu vergleichen, sollten Sie nun die entsprechende Zugangsart_ID verwenden. Zum Beispiel:
SELECT S.Recherche_URL
FROM Suchdetails AS S
INNER JOIN Fachgebiet AS F ON S.ID_Fachgebiet = F.ID_Fachgebiet
INNER JOIN Zugangsarten AS Z ON S.Zugangsart_ID = Z.Zugangsart_ID
WHERE Z.Zugangsart = 'frei zugänglich'
AND S.Schlagwörter LIKE '%Sensorik%'
AND F.Fachgebiet_Bezeichnung = 'IoT';
In dieser überarbeiteten Abfrage werden die Suchdetails und Fachgebiet Tabellen wie in Ihrem ursprünglichen SQL-Statement verbunden, aber es wird zusätzlich die Tabelle Zugangsarten über die Zugangsart_ID verbunden, um sicherzustellen, dass nur die Datensätze mit der richtigen Zugangsart ausgewählt werden. Monchi, du bist auf dem richtigen Weg. Sehr gut ! ^^