关于这一点的其他线索似乎没有帮助我 . 我想从一个表中选择所有信息,但是按照另一个表中的值对它们进行排序 .
SELECT消息,date
,
IP,
名称,
网站,
ID
从 guestbook_message
WHERE删除= 0
和日期> DATE_SUB(NOW(),INTERVAL 1天)
ORDER BY date
DESC“;
除了我需要 ORDER BY 'votes' DESC;
,这是在另一个名为 m_votes
的表中 .
是否有可能做到这一点?我在另一个网站上看到这个查询是不可能的 .
$ query =“SELECT g.message,g.date,g.ip,g.name,g.website,g.id FROM guestbook_message AS g JOIN m_votes AS v ON g.id = v.vid WHERE g.deleted = 0 AND v.messageid = $ mid AND g.date> DATE_SUB(NOW(),INTERVAL 1 DAY)ORDER BY(v.votes)DESC;“
^^这不起作用
4 回答
您需要加入:
我是一个初学者,对我而言,这是一个非常难的查询,因为它需要在m_votes中找到'投票'的SUM并按此顺序排序 . 以及从其他查询中获取信息 . 这是获取有关消息的信息的查询:
这是获取有关投票信息的查询:
但我不知道我会将它们放入一个查询中,该查询将从第一个查询中收集所有信息,然后通过投票对它们进行排序 .
您必须加入数据,也就是说,您需要为每个留言板留言投票 .
让我们假设为了简单起见,您有以下表格:
和
然后你可以做类似的事情
甚至更好:
看到:
mysql joins,
mysql left join
mysql group by - aggregate functions
Join Syntax
请尝试下面的查询,你错过了group by子句 .