2013-05-12 6 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."'"; 
} 

Мне нужно сортировать $ SQL по количеству строк по убыванию для SQL2$ по ид

+0

Зачем вы завершаете второй запрос в '{}'? –

ответ

0

Если я правильно поняли, вы хотите, чтобы результаты от $sql упорядочивались по количеству строк, найденным по $sql2 для каждой строки в $sql. Это соединение должно сделать это, оно присоединяется к таблице2 и порядку по счету, по убыванию.

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

+0

Это именно то, что я хочу http://stackoverflow.com/questions/16536571/sql1-to-get-names-and-sql2-to-get-impressions-i-need-to-sort -names-by-impressio – mohammed

+0

@mohammed Я не совсем уверен, что случилось с ответом выше. Если вы дадите обратную связь, а не начнете новый вопрос, было бы легче ответить. –

Смежные вопросы