2016-12-05 4 views
0

bitte, da dies dazu beitragen, entwickelt sich zu einer Woche fast ohne Schlaf schon ..Verwenden Abfrageergebnisse in einem anderen SQL-Abfrage

Ich habe eine Tabelle namens Produkte, mit diesen Spalten: id | Produktname | Kategorie | Unterkategorie | date_added | Preis .

Wie kann ich die ID und die Kategorie aus dem LETZTEN PRODUKT IN JEDER UNTERKATEGORIE in dieser Tabelle erhalten?

bisher das funktioniert irgendwie, aber es gibt nur die Unterkategorie, und ich brauche auch die Kategorie und ID

$sql = mysql_query("SELECT DISTINCT subcategory FROM products ORDER BY id DESC LIMIT 12"); 

Wenn ich etwas versuchen, wie

$sql = mysql_query("SELECT DISTINCT id, category, subcategory FROM products ORDER BY id DESC LIMIT 12"); 

es alles nur zurück ..

Vielen Dank alle

+0

Haben Sie eine Unterabfrage, die für letzte Produkt zurück sein würde jede Unterkategorie. Machen Sie mit diesem Ergebnis mit. – jarlh

+0

liefern Sie Ihre Tabellenstruktur mit Beispieldaten – Beginner

+1

** nicht ** mysql_'-Funktionen verwenden, sie sind veraltet, veraltet und in PHP7 entfernt. Verwenden Sie stattdessen 'mysqli_' oder' PDO'. –

Antwort

1

Zuerst: gruppieren Sie sie nach Unterkategorie

GROUP BY subcategory 

stellen Sie dann Ihren Zustand zu id = (select your id of latest product according to its subcategory)

id = (SELECT id 
     FROM products 
     WHERE products.subcategory = Product.subcategory 
     ORDER BY created DESC 
     LIMIT 1) 

So Ihre Anfrage

wie diese

SELECT * 
    FROM products Product 
    WHERE id = (SELECT id 
       FROM products 
       WHERE products.subcategory = Product.subcategory 
       ORDER BY created DESC 
       LIMIT 1) 
GROUP BY subcategory 
enter image description here enter image description here

+0

Kumpel, was du hier gemacht hast, hat meine Erwartungen weit übertroffen :))) Danke, du hast mich gerettet! Du hast das ganze Problem besser verstanden als jeder andere, den ich vorher gefragt habe ... und die Tische und alles .. pfff .. DANKE !! –

0

versuchen Sie dies

SELECT * FROM `products` GROUP BY subcategory ORDER By id DESC 

MySQL-Erweiterung veraltet und von php7 so verwenden mysqli oder PDO

0

Ändern Sie Ihre Anfrage an

SELECT id, category, subcategory FROM products GROUP BY (subcategory) ORDER BY id DESC LIMIT 12 
0

wenn idAUTO_INCREMENT ist entfernt worden ist, können Sie dies tun:

SELECT * FROM `products` WHERE id IN (SELECT MAX(id) FROM `products` GROUP BY subcategory) 
Verwandte Themen