0

我试着拉这个,我有点卡住了。

select 
distinct( msc.id),
 msc.campaignname ,
    max(mst.createdate) as mydate 
from MainMiniSiteCampaign as msc

right join MainMiniSiteTable as mst
on  mst.campaignid = msc.id

order by msc.id
group by msc.id

任何想法我做错了什么?

(错误是“关键字'group'附近的语法不正确)

4

4 回答 4

2

GROUP BY需要在之前ORDER BY

编辑:我没有读那么远:)

因为无论如何你都在分组,所以你根本不需要distinct

select 
msc.id,
 msc.campaignname ,
    max(mst.createdate) as mydate 
from MainMiniSiteCampaign as msc

right join MainMiniSiteTable as mst
on  mst.campaignid = msc.id

group by msc.id, msc.campaignname

而且由于 group by 在 MySQL 中意味着 order by,因此您无需指定ORDER BY两者。但是您可能希望在组中添加活动名称,否则将选择每个 msc.id 组的随机活动名称。或者在不需要时将其从选择中删除。

于 2013-07-08T08:26:59.453 回答
0

首先你应该写 group by 然后 order by :

按 msc.id 分组
按 msc.id 订购

于 2013-07-08T08:26:51.000 回答
0
select 
msc.id,
min( msc.campaignname) ,
max(mst.createdate) as mydate 

from MainMiniSiteCampaign as msc
right join MainMiniSiteTable as mst on  mst.campaignid = msc.id

group by msc.id
order by msc.id

distinct(msc.id)使用时不需要group by msc.id

于 2013-07-08T08:34:19.527 回答
0

像这样试试

select 
distinct( msc.id),
msc.campaignname ,
max(mst.createdate) as mydate 
from MainMiniSiteCampaign as msc

right join MainMiniSiteTable as mst
on  mst.campaignid = msc.id

group by msc.id
order by msc.id
于 2013-07-08T08:29:07.210 回答