Hallo,
ich habe 2 Tabellen.
Tabelle 1 - hosts -> enthält Anzahl x von Geräten
- id *
- name
- ip
- ...
Tabelle 2 - statuses -> enthält die Anzahl aller Änderungen der Geräte aus Tabelle 1
- id *
- host_id
- values
-....
Ich möchte in einer Übersicht gern alle Geräte (aus Tabelle 1) und eine pro Gerät limitierte Anzahl Status (aus Tabelle 2).
Es wird limitiert, jedoch nur die ersten Einträge aus statuses.
Also für das erste Gerät werden mir korrekt 3 Einträge aus statuses angezeigt und dann aber für die anderen Geräte immer nur 1 Eintrag (obwohl mehr vorhanden sind).
Wo liegt mein Fehler? Oder was wäre eine bessere Lösung?
Vielen Dank für eure Hilfe und Viele Grüße
ich habe 2 Tabellen.
Tabelle 1 - hosts -> enthält Anzahl x von Geräten
- id *
- name
- ip
- ...
Tabelle 2 - statuses -> enthält die Anzahl aller Änderungen der Geräte aus Tabelle 1
- id *
- host_id
- values
-....
Ich möchte in einer Übersicht gern alle Geräte (aus Tabelle 1) und eine pro Gerät limitierte Anzahl Status (aus Tabelle 2).
SQL:
SELECT id, updated_at, hostname, mac, ip, updated_at FROM (SELECT created_at, value , host_id from public.statuses limit 3) as statuses RIGHT OUTER JOIN (SELECT * from public.hosts ORDER BY updated_at) as hosts USING (host_id) ORDER BY ip limit 20;
Es wird limitiert, jedoch nur die ersten Einträge aus statuses.
Also für das erste Gerät werden mir korrekt 3 Einträge aus statuses angezeigt und dann aber für die anderen Geräte immer nur 1 Eintrag (obwohl mehr vorhanden sind).
Wo liegt mein Fehler? Oder was wäre eine bessere Lösung?
Vielen Dank für eure Hilfe und Viele Grüße