好吧,我一直在努力奋斗这个问题,任何帮助都会感激不尽。
我有两张桌子:
表名:列名。 (仅显示相关的列名称)
Topics: topic_id, topic_cat, topic_stick
Replies: reply_id, reply_date, reply_topic
我试图获取所有(topic_id)的= = 1,但在此我希望它排序,以便我得到最新的(reply_date),并将所有(topic_stick)放在顶部。
Reply_topic = topic_id
我一直在努力声明声明但没有成功: 这是我最接近的尝试,但没有根据我的意愿对表格进行排序。
SELECT topic_id
FROM topics, replies
WHERE
reply_topic = topic_id and
topic_cat = 1
GROUP BY topic_id
ORDER BY reply_date DESC, topic_stick ASC
答案 0 :(得分:1)
您应该使用JOIN语句来执行此操作。例如,如何使用它,请查看以下链接:
答案 1 :(得分:1)
SELECT
t.topic_id,
t.topic_cat,
t.topic_stick,
r.reply_id,
r.reply_date,
r.reply_topic
FROM replies r
INNER JOIN topics t on t.topic_id = r.reply_topic
WHERE
t.topic_cat = 1
GROUP BY r.reply_topic
ORDER BY r.reply_date DESC
答案 2 :(得分:0)
颠倒ORDER BY子句的顺序。你想要:
ORDER BY Topics.topic_stick, Replied.reply_date DESC
你提及"如果他们说1" - 如果您使用0来表示非粘性,那么您也必须制作一个DESC。