, 나는 빠르게 테이블 구조가 얼마나 이상 갈 것 같은 테이블에서, 각 카테고리에서 4 개 최신 행을 가져 MySQL의 게시물/주제 테이블 :내 문제를 설명하기 전에
int int** UNIX Time Int Int
--------------------------------------------------
| id | category | postdate | topic_id | is_topic |
--------------------------------------------------
| 1 | a | 12345678 | 1 | 1 |
--------------------------------------------------
| 2 | a | 12345678 | 1 | 0 |
--------------------------------------------------
| 3 | b | 12345678 | 3 | 1 |
--------------------------------------------------
| 4 | b | 12345678 | 3 | 0 |
--------------------------------------------------
| 5 | c | 12345678 | 5 | 1 |
--------------------------------------------------
| 6 | c | 12345678 | 5 | 0 |
--------------------------------------------------
을
** 글자를 사용하여 테이블을 읽기가 더 편리합니다.
각 카테고리에 대해 4 개의 최신 행을 검색하려고하는데 GROUP BY를 사용하여 각 카테고리에서 최신 1 개를 가져올 수 있지만 각 카테고리에 대해 여러 항목을 얻는 방법을 모르겠습니다.
나는 이런 식으로 뭔가를 시도 :
SELECT *
FROM posts p
WHERE NOT EXISTS
(
SELECT *
FROM posts
WHERE category = p.category
LIMIT 4
)
나는 또한 SO에 여기에 몇 가지 다른 답변을 위해 제공되는 다른 답변 사람들의 몇 가지 작업을했지만, 내가 그들을 맞게 만들 수있을 것 같지 않았다 나의 목적.
mysql이 이러한 복잡한 쿼리와 관련하여 강력한 측면이 아니기 때문에 여기서는 완전히 잃어 버렸습니다.
도움말 또는 올바른 방향의 포인터는 정말 감사하겠습니다!
감사합니다.
업데이트 : 카테고리 수는 정적이 아니며 변경됩니다. 이 같은
답장을 보내 주셔서 감사합니다. 나는 그에게 스윙을 줄 것이다. 세션 변수 (?)를 사용한다는 사실을 제외하고이 쿼리를 많이 이해하지 못합니다. 어떻게 작동하는지에 대해 더 많이 이해하고 싶습니다. 무리 감사! – MrE
확실한 것은 몇 분 내놔. –
정말 고맙습니다! 고마워요! – MrE