2010-02-14 3 views
0

Voici la version actuelle de SQL: http://www.copypastecode.com/22205/Comment limiter par plusieurs catégories (prises de manière dynamique) dans une instruction SQL?

Il faut 70 nouvelles lignes à partir d'annonces de table.

Mais il ne prend pas la quantité correcte (par exemple 5) de lignes pour chaque mr.region_id à partir des régions map_membrées jointes. Par exemple, si je vais ajouter 50 annonces dans une région, il en prendra 50 et laissera 20 emplacements pour les régions restantes.

Veuillez m'aider à mettre à jour le code SQL actuel, donc il faudrait 5 lignes d'annonces de table pour chaque mr.region_id dans la table map_regions.

Répondre

0

Essayez

SELECT a.id,a.country,a.region,a.rajons,a.town AS town_id,a.pagasts,i.t0_1, mt.town, mp.pagasts, c.link 
FROM ads a 
INNER JOIN categories c ON a.category = c.cat_id 
RIGHT JOIN images i ON a.id = i.ad_id 
LEFT JOIN (select * from map_regions where region_id = a.region LIMIT 5) as mr 
LEFT JOIN map_towns mt ON a.town = mt.town_id 
LEFT JOIN map_pagasts mp ON a.pagasts = mp.pagasts_id 
WHERE a.expire >= ' . $current->get() . ' 
ORDER by a.id DESC 
LIMIT 70 
+0

SQLSTATE [42000]: Erreur de syntaxe ou violation d'accès: 1064 Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'WHERE a.expire> = 1266169150 ORDER par a.id DESC LIMIT 70' à la ligne 8 – Somebody

+0

Version MySQL: 5.1.41 – Somebody

+0

J'utilise PDO connexion à la base de données. Peut-être que c'est la raison de l'erreur de syntaxe? – Somebody

Questions connexes