Hallo,
ich hab da mal eine kleine Frage an euch, ist es möglich in einer SQL-Query mit GROUP BY zu sortieren bzw zu steuern das der aktuellste datensatz zurgegeben wird?
natrürlich muss dann auch die ID des Datensatzes passen also es darf sich nicht nur innerhalb einer Spalte was ändern.
die erste Tabelle
so und nun die Group By anweisung
Die zweite Tabelle
Left join aus den oberen beiden Tabellen
so und nun die Group By Anweisung
und da haben wir den salat, die EAN passt nicht mit dem timestamp übereinander und genau da liegt das Problem, wie bekomme ich das jetzt hin...
.momai
ich hab da mal eine kleine Frage an euch, ist es möglich in einer SQL-Query mit GROUP BY zu sortieren bzw zu steuern das der aktuellste datensatz zurgegeben wird?
natrürlich muss dann auch die ID des Datensatzes passen also es darf sich nicht nur innerhalb einer Spalte was ändern.
die erste Tabelle
Code:
mysql> SELECT * FROM products p; +--------+-----------------------------+---------------+----------------+ | pdt_id | product_descriptions_pdn_id | pdt_ean | pdt_time | +--------+-----------------------------+---------------+----------------+ | 1 | 1 | 3403840928409 | 20040112201209 | | 2 | 1 | 4043956039453 | 20070104201209 | +--------+-----------------------------+---------------+----------------+ 2 rows in set (0.00 sec)
Die zweite Tabelle
Code:
mysql> SELECT * FROM product_descriptions p; +--------+-----------------+----------+ | pdn_id | pdn_title | pdn_text | +--------+-----------------+----------+ | 1 | Classic Slip-On | NULL | +--------+-----------------+----------+ 1 row in set (0.00 sec)
Code:
mysql> SELECT pdt_id , pdt_ean , pdn_title , pdt_time FROM products LEFT JOIN product_descriptions p ON product_descriptions_pdn_id = pdn_id; +--------+---------------+-----------------+----------------+ | pdt_id | pdt_ean | pdn_title | pdt_time | +--------+---------------+-----------------+----------------+ | 1 | 3403840928409 | Classic Slip-On | 20040112201209 | | 2 | 4043956039453 | Classic Slip-On | 20070104201209 | +--------+---------------+-----------------+----------------+ 2 rows in set (0.00 sec)
Code:
mysql> SELECT pdt_id , pdt_ean , pdn_title , max(pdt_time) FROM products LEFT JOIN product_descriptions p ON product_descriptions_pdn_id = pdn_id GROUP BY pdn_id; +--------+---------------+-----------------+----------------+ | pdt_id | pdt_ean | pdn_title | max(pdt_time) | +--------+---------------+-----------------+----------------+ | 1 | 3403840928409 | Classic Slip-On | 20070104201209 | +--------+---------------+-----------------+----------------+ 1 row in set (0.00 sec)
.momai
EDIT:
Das nächste Mal sorgst du bitte selber durch Umbrüche dafür, dass man nicht meterweit querscrollen muss.
Kommentar