首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL: GROUP BY with INNER

MySQL: GROUP BY with INNER
EN

Stack Overflow用户
提问于 2012-02-12 22:07:00
回答 2查看 545关注 0票数 0

我需要从基地获得类似的广告而不是重复...这段代码将给出相同的广告,但带有不同的图像...

代码语言:javascript
复制
"SELECT DISTINCT a.*, ct.cityname as cityname, UNIX_TIMESTAMP(a.timestamp) AS timestamp, UNIX_TIMESTAMP(a.createdon) AS createdon, UNIX_TIMESTAMP(a.expireson) AS expireson,p.picfile as picfile,cat.catid,cat.catname as catname,scat.subcatname as subcatname, UNIX_TIMESTAMP(feat.featuredtill) AS featuredtill $xfieldsql
            FROM $t_ads a   
                INNER JOIN $t_subcats scat ON scat.subcatid = a.subcatid
                INNER JOIN $t_cats cat ON scat.catid = cat.catid
                    INNER JOIN $t_cities ct ON a.cityid = ct.cityid
                LEFT OUTER JOIN $t_adpics p ON a.adid = p.adid AND p.isevent = '0'
                LEFT OUTER JOIN $t_adxfields axf ON a.adid = axf.adid
                LEFT OUTER JOIN $t_featured feat ON a.adid = feat.adid AND feat.adtype = 'A'
            WHERE a.subcatid = $subcatid 
                AND a.cityid = $cityid 
                AND $visibility_condn_admin 
                AND a.adid != ".$_GET['adid']." 
                ".$similar_jobs_where."
                ".$similar_jobs_order."
                LIMIT ".constant("SIMILAR_JOBS_LIMIT");

我想,我必须在某个地方写一个群,但是在哪里呢?

FETCH_ARRAY:

代码语言:javascript
复制
Array ( [adid] => 7965 [adtitle] => Iphone 3gs 32gb [addesc] => Text. [area] => м.Улица академика янгеля [cityname] => Москва [timestamp] => 1327927914 [createdon] => 1327875932 [7] => 1359411932 [expireson] => 1359411932 [8] => 4f25b94c483c75f062cd1d573.jpg [picfile] => 4f25b94c483c75f062cd1d573.jpg [9] => 1 [catid] => 1 [10] => Сотовая связь [catname] => Сотовая связь [11] => Мобильные телефоны [subcatname] => Мобильные телефоны )

Array ( [adid] => 7965 [adtitle] => Iphone 3gs 32gb [addesc] => Text. [area] => м.Улица академика янгеля [cityname] => Москва [timestamp] => 1327927914 [createdon] => 1327875932 [7] => 1359411932 [expireson] => 1359411932 [8] => 4f25b94cddab6daa6806c5a56.jpg [picfile] => 4f25b94cddab6daa6806c5a56.jpg [9] => 1 [catid] => 1 [10] => Сотовая связь [catname] => Сотовая связь [11] => Мобильные телефоны [subcatname] => Мобильные телефоны)

PICFILE中的差异

EN

回答 2

Stack Overflow用户

发布于 2012-02-12 22:28:03

我认为您应该按产品名称进行分组。然而,我不知道你是否得到了想要的图像。我需要更多关于你的表结构的信息。

票数 0
EN

Stack Overflow用户

发布于 2012-02-12 22:28:49

如果distinct不能帮助您,Group by将不会对您有所帮助。如果不理解为什么要获得两条记录,您将无法解决此问题。因此,问题就变成了:是什么使这两个记录不同?

问题可能是这两条记录的时间戳不同;因此您得到的是两条而不是一条。只返回显示广告所需的那些值,而不是.*以及所有这些时间戳。

或者,您可能会获得多个记录,因为您在任何联接的表中都有多个记录,这会导致该广告的第二个实例出现,这是因为您在某个地方有一个您不期望的一对多。

Distinct通常会删除此类内容(或group by),但前提是select语句中排除了一对多关系中的多个条件。

因此,直接对数据库运行您发布的SQL,并查看是什么导致记录不是唯一的,然后询问您是否需要返回该列?如果不是,那么排除它将会解决你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9249397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档