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."'";
 }

我需要按id为$sql2的行数对$sql进行排序

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 回答