使用左连接需要最高ID

时间:2014-02-26 14:30:50

标签: php mysql left-join outer-join

我有两张桌子,
表1中每个客户和广告系列很多,非常
表2中每个客户端和广告系列只有一个

所以我想从表1中获得最新的(最高ID),它与表2中的客户端和广告系列匹配,并且只与其中一个匹配。
我已经尝试过MAX,然后按顺序玩等等,但不能让它正常工作....

我得到的结果是从表1中选择最低 ID(我希望最高

$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
"); 

需要帮助......

1 个答案:

答案 0 :(得分: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。