Hallo, ich habe folgendes Problem:
Ich habe vier Tabellen
tbl_arcLog referenziert auf tbl_arcOrder referenziert auf tbl_arcVersion referenziert auf tbl_arcEntry (jeweils über die ID)
In der Tabelle tbl_arcLog stehen Logmeldungen die in der Regel zu einer Order gehören. Jedoch gibt es auch Einträge, wo in der orderID-Spalte null steht, weil es Systemlogs sind, unabhängig von einer Order. In der Tabelle tbl_arcEntry (am Ende der Kette) steht dann ein Teststandname zu dieser Order.
Wie bekomme ich nun mit einem SQL-Statement alle Datensätze aus der Tabelle tbl_arcLog mit zugehörigen Teststandnamen UND die Logs „ohne“ Order, also ohne Teststandnamen heraus, OHNE dass ein Eintrag doppelt im ResultSet auftaucht?
Folgendes Statement habe ich entwickelt, aber leider bekomme ich dann jeden Datensatz aus tbl_arcLog mit orderId = null mit jedem Teststandnamen kombiniert. Dieser soll aber nur einmal auftauchen, und dann z.B. auch null in der Spalte für den Teststand stehen haben.
SELECT DISTINCT tbl\_arcLog.Type, tbl\_arcLog.TimeOfCreation, tbl\_arcLog.Message, tbl\_arcLog.Context, tbl\_arcOrder.arc\_version\_id, tbl\_arcEntry.test\_fac\_name
FROM tbl\_arcLog, tbl\_arcOrder, tbl\_arcVersion, tbl\_arcEntry
WHERE ((tbl\_arcLog.arc\_order\_id=tbl\_arcOrder.id) AND
(tbl\_arcOrder.arc\_version\_id=tbl\_arcVersion.id) AND
(tbl\_arcVersion.arc\_entry\_id=tbl\_arcEntry.id))
OR (tbl\_arcLog.arc\_order\_id is null)
Geht das überhaupt, oder muss ich anders an die Sache herangehen? Habs auch schon mit Joins versucht, aber bin auch nur genausoweit gekommen…
Gruß vom Pianoman