0

私は2つのテーブルを持っています。

初め:

TABLE Articles
  ID  

2番:

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

テーブルArticlesからすべてのIDを選択し、日付に従ってViewcountのNUMVIEWS(DESC)で並べ替えるにはどうすればよいですか?次に、ビューカウントで見つからなかった記事の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 に答える