PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   SQL / Datenbanken (https://www.php-resource.de/forum/sql-datenbanken/)
-   -   SQL-Abfrage vereinfachen (https://www.php-resource.de/forum/sql-datenbanken/106360-sql-abfrage-vereinfachen.html)

Kanaffig 02-10-2018 11:50

SQL-Abfrage vereinfachen
 
Hallo,

ich habe drei Tabellen mit folgenden ähnlichen Aufbau:

Code:

clients    || contact    || files
---------------------------------------
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.

Anton1897 15-12-2018 20:17

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.


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:53 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG