0

我一直在尝试使用以下 MySQL:

  SELECT distinct(photos.id)
       , photos.file
       , photos.tags
       , photos.desc
       , photos.ratio
       , tags.bid
       , tags.tagname_id 
    FROM photos
       , tags 
   WHERE photos.trending=1 
     AND tags.pid=photos.id
ORDER BY RAND() 
   LIMIT 10

我尝试使用DISTINCT来防止重复条目,但它似乎不适用于我的情况。

让它发挥作用的最佳方法是什么?

4

1 回答 1

0
 SELECT photos.id
   , photos.file
   , photos.tags
   , photos.desc
   , photos.ratio
   , tags.bid
   , tags.tagname_id 
FROM photos
   , tags 
WHERE photos.trending=1 
 AND tags.pid=photos.id
GROUP BY photos.id
ORDER BY RAND() 
LIMIT 10

这是进行查询的正确方法,但它会从 photos.id 中任意选择相同的一行,因此您最终可能会在不同的实例上得到不同的结果。

MS SQL 有效查询,查看sqlfiddle

select photos.col1,max(photos.col2),max(photos.col3),max(tags.col5),max(tags.col6)
from photos,tags
where photos.col1=tags.col4
group by col1

SQL 指令是:当使用 group by 列时,不能包含在 select 中,除非它按 OR 分组,否则在聚合函数中使用。

于 2012-09-08T00:06:16.633 回答