2013-05-12 2 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

두 번째 쿼리를'{} '로 묶는 이유는 무엇입니까? –

답변

0

에 의해 $ SQL2 내림차순 행의 수에 의해 $의 SQL을 정렬 할 필요가 도움이 될 수 있습니다 정확하게 이해한다면 $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 

.

+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 위의 대답에 무엇이 잘못되었는지는 잘 모르겠습니다. 새로운 질문을 시작하는 대신 피드백을 주면 대답하기가 쉽습니다. –