2010-11-08 47 views
1

這是我的代碼後的第一次(可以對其進行編輯):如何選擇使用MySQL的

SELECT * FROM posts WHERE posts.user_id = 1 OR posts.user_id = 2 

如何選擇用戶1和2中的第一篇文章?

alt text

回答

5
select user_id, min(post_id) as FirstPostID 
from posts 
where user_id in (1, 2) 
group by user_id 
+1

@RedFilter:不應該'group by'來到底? – Sarfraz 2010-11-08 17:11:52

+0

@Sarfraz你吧:) – faressoft 2010-11-08 17:13:12

+0

什麼是「分」嗎? – faressoft 2010-11-08 17:13:45

3
SELECT user_id, MIN(post_id) 
FROM posts 
WHERE user_id IN (1, 2) 
GROUP BY user_id 
0
SELECT user_id, post_id 
FROM posts 
GROUP BY user_id 
ORDER BY post_id asc; 

上面的查詢會給你所有的第一篇文章的所有用戶。與以前的解決方案略有不同。

+0

是的,但它本質上是做同樣的事情,接受的答案。一般來說,最好避免復活舊線程,除非響應在以前的答案中添加了重要的內容。 – Leigh 2012-04-06 17:38:03

0

現有的答案可以得到改善,因爲它們不匹配的問題:

「選擇用戶1和2中的第一篇文章」

只選擇ID後需要您發出第二查詢獲取發佈數據。

這避免了第二次查詢發行獲得那個職位數據:

SELECT * FROM posts WHERE ID in (
    select min(id) 
    from posts 
    where user_id in (1,2) 
); 

即使你只是想ID; group by子句也是不必要的:

select min(id) 
    from posts 
    where user_id in (1,2)