我一直在尝试使用以下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
来防止重复输入,但在我的情况下它似乎不起作用。
让这个工作的最佳方法是什么?
答案 0 :(得分: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时,不能包含在select中,除非它按OR分组,它在聚合函数中使用。