
Originariamente inviata da
Madsex
Bhe è proprio quello il problema,in stock_available ci sono effettivamente più record con
p.id_product = sa.id_product ma l'id product è l'unico che posso usare per associare la tabella precedente con stock_available. Di fatto però a me serve un'unico record, quello che, in stock_available ha "quantity" più alta di tutti.
Ho risolto così:
codice:
$sql= "SELECT *, p.price FROM "._DB_PREFIX_."product p";
$sql.= " LEFT JOIN "._DB_PREFIX_."product_lang pl ON(p.id_product = pl.id_product) ";
$sql.= " LEFT JOIN "._DB_PREFIX_."tax t ON(p.id_tax_rules_group = t.id_tax)";
$sql.= " LEFT JOIN "._DB_PREFIX_."specific_price sp ON(p.id_product = sp.id_product)";
$sql.= " LEFT JOIN (SELECT* FROM "._DB_PREFIX_."stock_available GROUP BY id_product) as sa ON(p.id_product = sa.id_product)";
$sql.= " WHERE p.active = '1' AND sa.quantity > '0'";
$sql.= " ORDER BY p.date_add DESC, p.id_product DESC LIMIT $limit $offset";
Mi pare che funzioni correttamente ma vorrei un parere, come detto sono un bel po' niubbo sulle join.
Grazie in anticipo