J'ai 2 tables .. catégories & offres. En fin de compte, je veux faire ce qui suit:Mysql - Sous-requêtes w/comptage des articles
// foreach category
// Display category title
// show 3 entries in deals where it matches category title above, along with a link saying: "View (count) More Deals
Maintenant, il y a deux façons pour moi de le faire:
// The "bad" way:
// foreach category
// fetch count of total deals in this category
// Display category title (once)
// Fetch & Display 3 deals
// Display "View (count) more deals
// This is just quite a few queries for one page
La voie "autre":
SELECT count(deals.id),
category.name as category_name,
deal.name as deal_name
FROM $db[ddd_deals] as deals
JOIN $db[ddd_categories]
ON $db[ddd_categories].id = $db[ddd_deals].category_id
WHERE deals.city_id = '$_SESSION[city_id]'
ORDER BY $db[ddd_categories].name
Ce qui précède fait tout sauf afficher le nombre de transactions dans chaque catégorie, et seulement afficher 3 offres par catégorie
-S Hould Je choisirons de la table traite (ou de la table catégories, puis saisir les offres?)
// I also tried the following. It returns what category and deal, but the count is off (it is only displaying 1):
SELECT count(deals.id) as cc,
cat.name as cat_name,
deals.name as name
FROM ddd_categories as cat
JOIN ddd_deals as deals
ON deals.category_id=cat.id
GROUP BY deals.id
ORDER BY cat.id
Ni l'un ni l'autre ne produit les résultats dont j'ai besoin. Fondamentalement, je veux afficher 3 offres de chaque catégorie sous le titre de la catégorie avec un "voir (compter) plus d'offres dans cette catégorie.) Dois-je le faire la manière intensive de requête? Le code que vous avez posté ci-dessus fait tout sauf me donner le – execv
Si j'utilise "Group By cat.id", j'obtiens le nombre total de transactions dans chaque catégorie (cc), mais il affiche seulement 1 affaire par catégorie .. Toutes les pensées sur une autre direction Je pourrais prendre ça? – execv