SQL-Abfrage vereinfachen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SQL-Abfrage vereinfachen

    Hallo,

    ich habe drei Tabellen mit folgenden ähnlichen Aufbau:

    Code:
    [U]clients[/U]     || [U]contact[/U]     || [U]files[/U]
    ---------------------------------------
    client_id   || contact_id  || file_id
    firstname   || client_id   || client_id
    lastname    || name        || filename
    company_id  || number      || filepath
    In der Tabelle 'Files' sollen nachher 3 Dateien pro Klient hinterlegt sein. Nun soll eine Übersichtstabelle generiert werden, wo jeder Klient aufgelistet wird, zusätzlich seine Kontaktperson und ob die 3 benötigten Dateien vorhanden sind, welche der "Company 6" angehören.

    Den ersten Teil der Abfrage löse ich bisher so:
    Code:
    SELECT clients.firstname AS 'VORNAME'
           clients.lastname AS 'NACHNAME'
           contact.name AS 'KONTAKTNAME',
           contact.number AS 'TELEFON'    
    FROM  contact
    LEFT JOIN client ON contact.client_id = clients.id
    WHERE contact.client_id IN (SELECT clients.id FROM clients WHERE clients.company_id = 6)
    Nun würde ich pro Klienten drei Abfragen an die DB senden
    Code:
    SELECT COUNT FROM files WHERE client_id=X AND filename LIKE 'tolledatei';
    SELECT COUNT FROM files WHERE client_id=X AND filename LIKE 'superdatei';
    SELECT COUNT FROM files WHERE client_id=X AND filename LIKE 'cooledatei';
    
    "Wenn $result >= 1 dann Datei da"
    Das fühlt sich für mich als eher unerfahrener Datenbankler nicht wirklich gut an und ich denke, dass es da doch sicherlich eine bessere Lösung für gibt.

  • #2
    Man versteht nicht so recht, was du eigentlich vorhast. 1. Punkt: Hast du die Daten, um die es geht, schon irgendwo gespeichert? Wenn ja, nehme ich an, es ist eine MySQL-Datenbank. In dem Fall bitte einmal einige einigermaßen sinnvolle Beispieldaten dort speichern und einen Dump erstellen - das ist eine SQL-Datei, die alles enthält, was man braucht, um die Datenbank mit allen Tabellen und Inhalten auf einem Server zu installieren.

    Dann die Erwartung, was die Abfragen ausgeben sollen.

    Du hast ein wenig schlampig gearbeitet: Die Tabelle "clients" heißt in deiner Abfrage auf einmal "client", die Spalte id gibt es in clients überhaupt nicht.

    Kommentar

    Lädt...
    X