2014-02-26 1 views
0

나는 두 테이블,
표 1은 각 클라이언트 및 캠페인의 많은을 가지고 있으며, 매우
표 2는 각 클라이언트와 캠페인 하나을 가지고입니다 있습니다 작은.왼쪽을 사용하여 가장 높은 ID를 필요에 가입

표 2에서 클라이언트 및 캠페인과 일치하는 표 1에서 가장 최근의 (가장 높은 ID)를 얻고 싶습니다. 내가 표 1에서 가장 낮은 ID를 선택하고 얻을
내가 MAX를 시도 등으로 주문과 재생,하지만 캔트이 작업을 진행했다 ....

결과는 (내가 가장을 원하는)

$result2 = mysql_query("SELECT table1.client,table1.campaign,table1.id 
FROM table1 

    LEFT OUTER JOIN 
     table2 
    ON  (table2.client = table1.client) 
     AND (table2.campaign = table1.campaign) 
WHERE (table2.enabled != 'disabled') 

group by campaign asc 
order by client,campaign,id asc 
"); 

도움이 필요 ....

답변

0

SELECT * FROM table1 INNER JOIN ( SELECT MAX(table1.id) AS id FROM table1 INNER JOIN table2 ON table2.client = table1.client AND table2.campaign=table1.campaign and table2.enabled != 'disabled' GROUP BY table1.client, table1.campaign ) AS m ON m.id = table1.id

내가 일 생각 당신이 요구하고있는 것이죠. 각 테이블에있는 클라이언트와 캠페인의 각 조합에 대해 표 1에서 가장 높은 ID를 제공합니다.

+0

통찰력을 가져 주셔서 감사합니다. 작동했습니다 ... 귀하의 MAX 방법이 명세서의 시작 부분에있는 것을 보았습니다. 그래서 나는 이것을 내 시도했다. 그리고 그것도 작동했다.이 정보가 없으면 이것을 할 수 없었다. ..... 지금은 maxid (table1.id)만큼 maxid – Mikeys4u

+0

@ Mikeys4u이다. 방법! – MrZebra

+0

방금 ​​알아 챘습니다. 쿼리는 가장 높은 ID를 얻지 만 그 행의 나머지 데이터는 가져 오지 않습니다. – Mikeys4u