2010-11-21 3 views
0

comment voulez-vous créer cette requête en utilisant Zend_Db_Select Zend FrameworkJOIN dans les JOIN avec Zend

SELECT movie.*, count(DISTINCT similar.tag) as shared_tags FROM movie INNER JOIN 
    (tagged AS this_movie INNER JOIN tagged AS similar USING (tag)) 
    ON similar.movie = movie.id 
WHERE this_movie.movie=<current_movie_id> 
AND movie.id != this_movie.movie 
GROUP BY movie.id 
ORDER BY shared_tags DESC 
+0

il devrait être Zend_Db_Select –

+0

Faut-il être un 'Zend_Db_Select' pour une raison quelconque, parce que vous pourriez juste exécuter la requête sans être un objet' Zend_Db_Select' –

Répondre

0
$query = ("SELECT movie.*, count(DISTINCT similar.tag) as shared_tags 
    FROM movie 
    INNER JOIN (tagged AS this_movie 
       INNER JOIN tagged AS similar USING (tag))  
    ON similar.movie = movie.id 
    WHERE this_movie.movie=<current_movie_id> 
    AND movie.id != this_movie.movie 
    GROUP BY movie.id ORDER BY shared_tags DESC "); 
mysql_query('$query') or die(mysql_error()); 

Si vous utilisez des params dans votre requête de ne pas oublier d'échapper à toute params avec

$param = mysql_real_escape_string($param); 

Avant de les envoyer à sql_query ou vous serez mordu par des attaques par injection SQL.