Mysql 按RAND和DESC从表内部联接表顺序中选择
所以情况是这样的,我使用下面的查询从数据库内部获取详细信息,将表2与order by desc连接起来,但我希望hem也是rand(),但不知道如何使用,我也尝试过使用子查询,但不起作用,或者可能是我做得不对:Mysql 按RAND和DESC从表内部联接表顺序中选择,mysql,Mysql,所以情况是这样的,我使用下面的查询从数据库内部获取详细信息,将表2与order by desc连接起来,但我希望hem也是rand(),但不知道如何使用,我也尝试过使用子查询,但不起作用,或者可能是我做得不对: SELECT *,count(rating.photo_id) cphoto_id FROM rating INNER JOIN photos ON photos.id = rating.photo_id WHERE display = 1 GROUP BY rating.pho
SELECT *,count(rating.photo_id) cphoto_id FROM rating INNER JOIN photos ON photos.id = rating.photo_id WHERE display = 1 GROUP BY rating.photo_id ORDER BY cphoto_id DESC LIMIT 0,10
非常感谢您的帮助。试试这个。可能有用
select * from (SELECT *,count(rating.photo_id) cphoto_id FROM rating INNER JOIN photos ON photos.id = rating.photo_id WHERE display = 1 GROUP BY rating.photo_id ORDER BY cphoto_id DESC LIMIT 0,10) as alais order by rand();
编辑:
错误:列名“user\u id”重复,因为这两个表都包含名为:user\u idBy internal query的列。这一列在sql控制台中有效吗?选择*,计数(rating.photo_id)cphoto_id,从对照片上的内部连接照片进行评级。id=rating.photo_id,其中display=1按评级分组。photo_id按cphoto_id顺序描述限制0,10是的,此正常查询可以工作,但在尝试使用rand()时不起作用,它表示重复的用户id作为列用户id对于两个表都是相同的。
SELECT * FROM
(SELECT photos.*,rating.*,count(rating.photo_id) cphoto_id
FROM rating INNER JOIN photos ON photos.id = rating.photo_id
WHERE display = 1 GROUP BY rating.photo_id
ORDER BY rand() DESC LIMIT 10)as alias
ORDER BY cphoto_id;