Ich habe zwei Tabellen.MySQL: Join Tabellenfelder zu verwandten Ergebnissatz
Die Tabelle 'Parameter' (unten) verfolgt Parameter an verschiedene Komponenten befestigt:
id (pk) | name | component
den Tisch 'parameterLog', um die Werte eines Parameters über die Zeit verfolgt:
action_date | parameter (fk) | value | notes
I folgendes Ergebnis haben:
SELECT * FROM parameters WHERE component = 1;
+----+------+-----------+
| id | name | component |
+----+------+-----------+
| 1 | par1 | 1 |
| 2 | par2 | 1 |
+----+------+-----------+
Für jeden Eintrag im obigen Ergebnissatz Ich benötige das entsprechende und letzte action_date, value und note aus der Tabelle 'parameterLog'.
[Bearbeiten] Aus Gründen der Übersichtlichkeit schließe ich die Tabellen mit Daten unten ein.
parameters:
+----+------+-----------+
| id | name | component |
+----+------+-----------+
| 1 | par1 | 1 |
| 2 | par2 | 1 |
| 3 | par1 | 2 |
| 4 | par2 | 2 |
| 5 | par1 | 3 |
| 6 | par2 | 3 |
| 7 | par3 | 3 |
| 8 | par1 | 4 |
| 9 | par2 | 4 |
| 10 | par1 | 6 |
| 11 | par2 | 6 |
+----+------+-----------+
parameterLog:
+-------------+-----------+-------+-------+
| action_date | parameter | value | notes |
+-------------+-----------+-------+-------+
| 2010-01-01 | 1 | 0 | NULL |
| 2010-02-03 | 1 | 4 | NULL |
| 2010-01-01 | 2 | 0 | NULL |
| 2010-01-01 | 3 | 1 | NULL |
| 2010-01-01 | 4 | 1 | NULL |
| 2010-01-14 | 5 | 0 | NULL |
| 2010-01-14 | 6 | 1 | NULL |
| 2010-01-14 | 7 | 2 | NULL |
| 2010-01-14 | 8 | 3 | NULL |
| 2010-02-03 | 8 | 1 | NULL |
| 2010-01-14 | 9 | 4 | NULL |
| 2010-02-03 | 9 | 1 | NULL |
| 2010-02-25 | 10 | 9 | NULL |
| 2010-02-25 | 11 | 9 | NULL |
+-------------+-----------+-------+-------+
Vielen Dank für Ihre Antwort! Dies gibt mir die richtigen Felder, enthält jedoch Einträge aus früheren Parameterwerten (z. B. erscheint par1 zweimal in der Tabelle, einmal mit seinem alten Wert und einmal mit seinem aktuellen Wert). – user6431631
Kann es mehrere Protokolldatensätze mit demselben Parameter und genau demselben action_date geben? –
Nein. Der letztere Wert würde den vorherigen überschreiben. – user6431631