0

我有 2 张桌子。

第一的:

TABLE Articles
  ID  

第二:

TABLE Viewcount
  DATE        DATE  PK
  ARTICLE_ID  INT   PK  (MATCHES ID IN TABLE Articles)
  NUMVIEWS    INT

如何从表格 Articles 中选择所有 ID,然后根据日期按 Viewcount 的 NUMVIEWS (DESC) 排序?然后,我需要将未在 viewcount 中找到的 Articles 中的 ID 以无特定顺序附加到结果的末尾。我知道它必须是某种加入,但我无法弄清楚..

4

4 回答 4

1

尝试这个

SELECT id from Articles a
LEFT JOIN Viewcount v
ON  a.id = v.article_id
AND v.date = 'some date here'
ORDER BY v.numviews ,v.date desc
于 2013-01-08T19:30:13.893 回答
1

一个简单的连接就足够了,是的:

SELECT a.id FROm Articles a LEFT JOIN Viewcount v
ON v.article_id = a.id
ORDER BY v.numviews desc, v.date
于 2013-01-08T19:30:29.723 回答
0

这应该有效:

SELECT * FROM `Articles` `a`, `Viewcount` `v`
WHERE `v`.`ARTICLE_ID`=`a`.`ID`
ORDER BY `v`.`NUMVIEWS` DESC

替换SELECT *SELECT `a`.`ID`仅获取文章 ID。

于 2013-01-08T19:30:27.293 回答
0
SELECT ID from (Articles JOIN Viewcount on Articles.ID = Viewcount.ID) ORDER BY Viewcount.NUMVIEWS, Viewcount.date
于 2013-01-08T19:30:45.967 回答