From: <tr...@us...> - 2002-09-09 06:20:45
|
Update of /cvsroot/basedb/basedb/www In directory usw-pr-cvs1:/tmp/cvs-serv2148 Modified Files: experiment.inc.php Log Message: Added subselect to deal with MySQL's GROUP BY/'first encountered value' feature Index: experiment.inc.php =================================================================== RCS file: /cvsroot/basedb/basedb/www/experiment.inc.php,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** experiment.inc.php 8 Sep 2002 22:38:08 -0000 1.44 --- experiment.inc.php 9 Sep 2002 06:20:40 -0000 1.45 *************** *** 285,289 **** $query = "SELECT COUNT(*) FROM Experiment e ". ! "WHERE 1 ".$search->getExtraWhere()." ".$search->getWhere(); $res = query($query); if($row =& db_fetch_row($res)) $cnt = $row[0]; --- 285,289 ---- $query = "SELECT COUNT(*) FROM Experiment e ". ! "WHERE TRUE ".$search->getExtraWhere()." ".$search->getWhere(); $res = query($query); if($row =& db_fetch_row($res)) $cnt = $row[0]; *************** *** 301,305 **** $ob = $search->makeOrderBy($sortfields); ! $query = "SELECT e.*, COUNT(DISTINCT erb.`rawBioAssay`) AS raws, ". "COUNT(DISTINCT bas.id) AS sets, ". "COUNT(DISTINCT ba.id) AS assays ". --- 301,315 ---- $ob = $search->makeOrderBy($sortfields); ! if(db_has_subselects()) ! { ! $ss1 = ", t.raws, t.sets, t.assays FROM Experiment e, ". ! "(SELECT e.id,"; ! $ss2 = ") AS t WHERE e.id = t.id"; ! } ! else ! $ss1 = $ss2 = ""; ! ! $query = "SELECT e.* $ss1 ". ! "COUNT(DISTINCT erb.`rawBioAssay`) AS raws, ". "COUNT(DISTINCT bas.id) AS sets, ". "COUNT(DISTINCT ba.id) AS assays ". *************** *** 308,313 **** "LEFT JOIN BioAssaySet bas ON bas.experiment = e.id ". "LEFT JOIN BioAssay ba ON ba.`bioAssaySet` = bas.id ". ! "WHERE 1 ".$search->getExtraWhere()." ".$search->getWhere()." ". ! "GROUP BY e.id $ob ".$search->makeLimit(); $arr = array(); --- 318,323 ---- "LEFT JOIN BioAssaySet bas ON bas.experiment = e.id ". "LEFT JOIN BioAssay ba ON ba.`bioAssaySet` = bas.id ". ! "WHERE TRUE ".$search->getExtraWhere()." ".$search->getWhere()." ". ! "GROUP BY e.id $ss2 $ob ".$search->makeLimit(); $arr = array(); |