Subversion Repositories eFlore/Applications.del

Rev

Rev 1739 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1739 Rev 1757
Line 330... Line 330...
330
			3) non-problème: l'ordre des joins est forcé par l'usage de la vue:
330
			3) non-problème: l'ordre des joins est forcé par l'usage de la vue:
331
				(cel_images/cel_obs_images/cel_obs/del_image_stat)
331
				(cel_images/cel_obs_images/cel_obs/del_image_stat)
332
				Cependant c'est à l'optimiseur de définir son ordre préféré. */
332
				Cependant c'est à l'optimiseur de définir son ordre préféré. */
333
		if ($p['tri'] == 'votes' || $p['tri'] == 'points') {
333
		if ($p['tri'] == 'votes' || $p['tri'] == 'points') {
334
			// $p['protocole'] *est* défini (cf requestFilterParams())
334
			// $p['protocole'] *est* défini (cf requestFilterParams())
335
			// petite optimisation: INNER JOIN si ordre DESC car les 0 à la fin
-
 
336
			if($p['ordre'] == 'desc') {
-
 
337
				// pas de group by nécessaire pour cette jointure
-
 
338
				// PRIMARY KEY (`ce_image`, `ce_protocole`)
-
 
339
				$req['join']['dis'] = sprintf('INNER JOIN del_image_stat dis'.
-
 
340
					 ' ON vdi.id_image = dis.ce_image'.
-
 
341
					 ' AND dis.ce_protocole = %d',
-
 
342
					 $p['protocole']);
-
 
343
			} else {
-
 
344
				$req['join']['dis'] = sprintf('LEFT JOIN del_image_stat dis'.
335
			$req['join']['dis'] = sprintf('LEFT JOIN del_image_stat dis'.
345
					 ' ON vdi.id_image = dis.ce_image'.
336
				 ' ON vdi.id_image = dis.ce_image'.
346
					 ' AND dis.ce_protocole = %d',
337
				 ' AND dis.ce_protocole = %d',
347
					 $p['protocole']);
338
				 $p['protocole']);
348
				// nécessaire (dup ce_image dans del_image_stat)
-
 
349
				$req['groupby'][] = 'vdi.id_observation';
-
 
350
			}
-
 
351
		}
339
		}
Line 352... Line 340...
352
 
340
 
353
		if ($p['tri'] == 'tags') {
341
		if ($p['tri'] == 'tags') {
354
			$req['join'][] = sprintf('%s JOIN del_image_stat dis ON vdi.id_image = dis.ce_image',
342
			$req['join'][] = sprintf('%s JOIN del_image_stat dis ON vdi.id_image = dis.ce_image',