0

手伝って頂けますか

$sql="select * from table1 where id='1,2,3,4'";
{
 $sql2="select distinct column1 from table2 where column2='".$row['id']."' and left(date,10) BETWEEN '".$date_from."' AND '".$date_to."'";
 }

$ sql2IDで降順に行数でソートする必要があります

4

1 に答える 1

0

私の理解が正しければ、 の各行について、 で見つかった行数で並べ替えた結果が必要$sqlです。この結合はそれを行う必要があり、table2 を結合し、カウントで降順で並べ替えます。$sql2$sql

SELECT t1.id
FROM table1 t1
LEFT JOIN table2 t2
  ON t1.id=t2.column2
WHERE id IN (1,2,3,4)                     -- should it really be = '1,2,3,4'?
  AND LEFT(date,10) BETWEEN '2013-01-01' AND '2013-12-31'
GROUP BY t1.id
ORDER BY COUNT(DISTINCT t2.column1) DESC

でテストする SQLfiddle

于 2013-05-12T12:02:03.203 に答える