2013-05-12 37 views
0

你能帮助我PHP MySQL的排序行降数

$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

+0

为什么你会在包装'{}'第二个查询? – 2013-05-12 11:44:06

回答

0

如果我按行降序为$ SQL2的数量进行排序$ SQL理解正确的话,你想从$sql结果在$sql通过$sql2每一行中的行数排序。这个连接应该做到这一点,它加入table2,并通过计数降序下达。

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 

An SQLfiddle to test with

+0

谢谢你理解我 – mohammed 2013-05-14 06:15:05

+0

这正是我想要的http://stackoverflow.com/questions/16536571/sql1-to-get-names-and-sql2-to-get-impressions-i-need-to-sort -names-by-impressio – mohammed 2013-05-14 06:39:08

+0

@mohammed我不太清楚上面的答案有什么问题。如果您提供反馈意见而不是开始一个新问题,则回答起来会更容易。 – 2013-05-14 06:48:18