SQL-Abfrage für 2 Tabellen die über eine Tabelle miteinander Verknüpft sind.



  • Also ich habe 2 Tabellen (Person/Software)
    Person
    id - name
    1 - peter
    2 - max
    3 - moritz

    Software
    id - name
    1 - Microsoft Office
    2 - Windows Vista
    3 - Windows XP Home

    Nun habe ich eine Tabelle Rent in der gespeichert wird welche Person was für eine Software geliehen hat(Eine Person kann auch mehreres Ausleihen)
    Rent
    id - personId - SoftwareId
    1 - 1 - 1
    2 - 1 - 2
    3 - 1 - 3
    4 - 2 - 2
    5 - 2 - 3

    Wie muss nun Die SQL-Abfrage Lauten um jede Software Die Person 1 ausgeliehen hat auszugeben?

    SELECT software.id, software.name, rent.personId FROM software, rent WHERE rent.personID = 1;
    

    funktioniert leider nicht(Es wird immer jede Software ausgegeben/mehrmals).

    Vielen Dank für eure Hilfe



  • du mußt natürlich noch abklären dass die Id von Rent gleich der von Software ist, also entweder:

    SELECT software.id, software.name, rent.personId FROM software, rent WHERE rent.personID = 1 AND rent.SoftwareId = software.id;
    

    oder

    SELECT software.id, software.name, rent.personId FROM rent join software ON (rent.SoftwareId = software.id) WHERE rent.personID = 1;
    

Anmelden zum Antworten