MySQL JOIN mit LIMIT 1 für verbundene Tabelle
Bei dieser Frage geht es darum, zwei Tabellen zu verbinden und gleichzeitig die Ergebnisse der verbundenen Tabelle auf eine einzige zu beschränken Eintrag für jede Übereinstimmung in der ersten Tabelle.
Betrachten Sie in diesem Fall zwei Tabellen: Kategorien und Produkte, wobei jedes Produkt zu einer Kategorie gehört. Das Ziel besteht darin, jede Kategorie zusammen mit dem ersten Produkt innerhalb dieser Kategorie abzurufen.
Um dies zu erreichen, wird eine Unterabfrage verwendet, um den Primärschlüssel des ersten Produkts innerhalb jeder Kategorie, sortiert nach ID, abzurufen. Dieser Primärschlüssel wird dann in der äußeren Abfrage verwendet, um die entsprechenden Kategorie- und Produktinformationen abzurufen.
Die Abfrage kann wie folgt aufgebaut sein:
SELECT c.id, c.title, p.id AS product_id, p.title AS product_title FROM categories AS c JOIN products AS p ON p.id = ( SELECT p1.id FROM products AS p1 WHERE c.id = p1.category_id ORDER BY p1.id LIMIT 1 )
Dieser Ansatz stellt sicher, dass nur ein einzelnes Produkt Der Datensatz wird pro Kategorie abgerufen, wodurch effektiv das gewünschte Ergebnis erzielt wird.
Das obige ist der detaillierte Inhalt vonWie rufe ich mit MySQL JOIN und LIMIT 1 das erste Produkt für jede Kategorie ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!