Hallo,
weiß nicht so genau wie ich das Problem beschreiben soll. Deshalb ist es auch schwer für mich danach zu suchen.
Ich versuch’s mal zu formulieren:
Ich habe 2 Tabellen:
[modules]
modules_id
modules_name
[modules_template]
modules_id
modules_template
Die Tabelle [modules] enthält eine Liste mit verfügbaren Modulen.
Die Tabelle [modules_templates] enthält eine Verknüpfung einer Modul-ID mit einem Dokumententemplate-Namen.
Es kann mehrere Templates für ein Moduk geben. Es kann aber auch kein einziges Template für alle Module geben. Deshalb hier die strikte Trennung zwischen Modulen und Templates.
Aus speziellen Gründen muss meine Abfrage in einem einzigen Statement erledigt sein.
Die Abfrage soll enthalten:
modules_id
modules_name
modules_template
Wobei es ja, wie oben schon erklärt, vorkommen kann dass ein Modul kein Template gesetzt hat. So hab ichs auch prima hinbekommen. War ziemlich einfach:
SELECT
modules.modules_id,
modules.modules_name,
modules_template.modules_template
FROM modules, modules_template
WHERE modules.modules_id=modules_template.modules_id;
Doch im Ergebnis muss nicht nur die Verbindung zwischen Modul und Template auftauchen sondern im Ergebnis müssen ebenfalls alle in [modules} verzeichneten Module auftreten.
SELECT
modules.modules_id,
modules.modules_name,
modules_template.modules_template
FROM modules
LEFT JOIN modules_template ON modules.modules_id = modules_template.modules_id;
Ich greife einfach mal diesen Thread auf, da er schon fast genau das Problem enthält was ich gerade habe.
Ich habe eine ähnliche Tabellenstruktur:
[counterdetails]
cdid
filename
[counted]
cid
counterid
datum
Das ganze ist ein Aufrufzähler für bestimmte Dateien. Alle Dateien sind in der Tabelle counterdetails aufgelistet. In die Tabelle counted wird bei jedem Aufruf einer Datei ein Datensatz geschrieben, der eine eigene ID (cid), die ID der Datei (aus counterdetails = cdid) in counterid und das Datum in datum beinhaltet.
In einer Gesamtabfrage sind auch die Dateien mit dabei, wo noch nie jemand drauf zugegriffen hat = keine Einträge in counted mit dieser ID. Ich würde aber jetzt gerne eine Abfrage erstellen in der nur diese Dateien vorkommen, die eben noch keinen Eintrag in der Tabelle counted aufweisen. Hätte jemand einen Vorschlag?
Vielen Dank akretschmer, es funktioniert wie gewünscht! Mit verschachtelten selects hatte ich es noch nicht ausprobiert, aber man lernt immer dazu. Danke nochmal!