Wie man die Ergebnisse eines LEFT JOIN einschränkt
Nehmen Sie den Fall von zwei Tabellen:tbl_product
undtbl_transaction
.tbl_product
listet Produktdetails einschließlich Namen und IDs auf, währendtbl_transaction
listet Transaktionen auf, die die Produkte betreffen, und enthält Daten, Produkt-IDs, Kunden usw.
Ich muss eine Webseite anzeigen, auf der 10 Produkte und für jedes Produkt die letzten 5 Transaktionen aufgeführt sind. Bisher keinLEFT JOIN
query scheint zu funktionieren und die folgende Unterabfrage hätte funktioniert, wenn mysql das @ erlauben könntx.product_id=ta.product_id
part (schlägt fehl mitUnbekannte Spalte 'ta.product_id' in 'where-Klausel': [FEHLER: 1054]).
SELECT
ta.product_id,
ta.product_name,
tb.transaction_date
FROM tbl_product ta
LEFT JOIN (SELECT tx.transaction_date FROM tbl_transaction tx WHERE tx.product_id=ta.product_id LIMIT 5) tb
LIMIT 10
Ist es eine Möglichkeit, die von mir benötigte Auflistung zu erreichen?ohne Verwendung mehrerer Abfragen in einer Schleife?
Bearbeiten
Das ist genau das, was ich von MySQL brauche:
SELECT ta.product_id, ta.product_name, tb.transaction_date ...
FROM tbl_product ta
LEFT JOIN tbl_transaction tb ON (tb.product_id=ta.product_id LIMIT 5)
LIMIT 10
Natürlich ist das illegal, aber ich wünschte wirklich, es wäre nicht so!