Hallo Jungs (und Mädels ),
ich hab heute mal wieder ein gewaltiges Problem, und zwar gehts diesmal um meine Inventardatenbank die ich vor einiger Zeit geschrieben habe...
kurze Info: ich führe in diese Datenbank alle unsere Rechner und Laptops in der Firma, also Gerätename, Seriennummer, Hersteller, Typ, etc. - in einer "objects" Tabelle...
in einer anderen Tabelle führe ich eine Standordshistory (tabelle "location", properties: `id`, `object`, `location`, `office`, `user`, `department`, `timestamp)
so, object ist jetzt quasi der Fremdschlüssel, was immer einer "object".ID entspricht...
der aktuellste "location" - datensatz (order by timestamp desc) ist quasi der aktuelle Standpunkt, der Rest existiert aber weiterhin in meiner Tabelle - wegen meiner History die ich brauch...
so - was ich jetzt haben will, ist ein query der mir die objekte - inklusive aktueller "location" properties als EINE zeile ausgibt - wie stell ich das an?!
ich kann ja einfach machen
allerdings spuckt der mir dann eben die Datensätze DOPPELT aus - ich brauch die ja aber eindeutig - weils eben den Rechner nur EINMAL in der Firma gibt...
wenn ich jetzt "GROUP BY objects.name" noch anfüg hab ichs zwar EINDEUTIG - allerdings benutzt es jetzt von der "location" tabelle, den 1. Datensatz den er findet - was natürlich blöd ist, weil ich jetzt immer noch nicht den aktuellen Stand hab...
hat hierzu irgendjemand eine Idee wie ich genau das erreichen kann? Wäre echt wichtig
ich hab heute mal wieder ein gewaltiges Problem, und zwar gehts diesmal um meine Inventardatenbank die ich vor einiger Zeit geschrieben habe...
kurze Info: ich führe in diese Datenbank alle unsere Rechner und Laptops in der Firma, also Gerätename, Seriennummer, Hersteller, Typ, etc. - in einer "objects" Tabelle...
in einer anderen Tabelle führe ich eine Standordshistory (tabelle "location", properties: `id`, `object`, `location`, `office`, `user`, `department`, `timestamp)
so, object ist jetzt quasi der Fremdschlüssel, was immer einer "object".ID entspricht...
der aktuellste "location" - datensatz (order by timestamp desc) ist quasi der aktuelle Standpunkt, der Rest existiert aber weiterhin in meiner Tabelle - wegen meiner History die ich brauch...
so - was ich jetzt haben will, ist ein query der mir die objekte - inklusive aktueller "location" properties als EINE zeile ausgibt - wie stell ich das an?!
ich kann ja einfach machen
Code:
SELECT * FROM objects LEFT JOIN location ON location.object = objects.id
allerdings spuckt der mir dann eben die Datensätze DOPPELT aus - ich brauch die ja aber eindeutig - weils eben den Rechner nur EINMAL in der Firma gibt...
wenn ich jetzt "GROUP BY objects.name" noch anfüg hab ichs zwar EINDEUTIG - allerdings benutzt es jetzt von der "location" tabelle, den 1. Datensatz den er findet - was natürlich blöd ist, weil ich jetzt immer noch nicht den aktuellen Stand hab...
hat hierzu irgendjemand eine Idee wie ich genau das erreichen kann? Wäre echt wichtig
Zuletzt bearbeitet:
(formatting + typos fixed)