3

データベースに「articles」というテーブルがあります

記事:

id +++   writer_id    +++     title     ++++    text
----------------------------------------------------
1           1              some title        article for writer 1 
2           1              some title        article for writer 1 
3           2              some title        article for writer 2 
4           2              some title        article for writer 2 
5           2              some title        article for writer 2
6           3              some title        article for writer 3

テーブルから最新の記事を取得するためのクエリが必要ですが、ライターごとに1つの記事だけです

クエリの上の行に応じて、3行だけを取得する必要があります:各記事は1人のライターが所有しています

2           1              some title        article for writer 1 
5           2              some title        article for writer 2
6           3              some title        article for writer 3

php

SELECT * 
FROM articles
WHERE writer_id = ???? ;
order by id desc limit 10

前もって感謝します : )

4

3 に答える 3

1

GROUP BYとの組み合わせを使用するとHAVING、各著者が書いた最後の記事を取得し、適切に注文することができます。

SELECT * 
FROM articles
WHERE writer_id = ????
GROUP BY writer_id
HAVING id = MAX(id)
ORDER BY id DESC
LIMIT 10
于 2012-08-03T21:49:07.333 に答える
1

短くて甘い:

SELECT MAX(id), writer_id, title, text FROM articles GROUP BY writer_id;
于 2012-08-03T21:54:18.993 に答える
0

サブクエリを使用して、ライターごとに最新の記事IDを取得します。

SELECT * FROM articles
WHERE id in
(
    SELECT MAX(id) id, writer_id
    FROM articles
    GROUP BY writer_id
)
于 2012-08-03T21:49:54.333 に答える