2011-12-28 68 views
0

下使用mysql如何從此數據庫設計中檢索用戶帖子?

DB設計:

Users: 
- userId 
- userName 

Posts: 
- postId 
- text 

UserPosts (many-many): 
- userId (FK) 
- postId (FK) 

我想要檢索的所有用戶發佈的所有信息。這正是我需要的:

- userName 
- text 

我不太知道如何寫這個查詢。我如何做這3種方式加入?

+4

因此,許多用戶可以寫一個帖子?這是什麼樣的系統?你不是過度工程師嗎? – 2011-12-28 21:10:11

+1

@SergeiTulentsev一個用戶可以寫很多帖子。相同的帖子可以由其他用戶轉貼。想想Twitter。 – brainydexter 2011-12-28 21:12:36

+0

@SergeiTulentsev - 可能是我們所知道的某種wiki系統。 – JonH 2011-12-28 21:12:43

回答

-1
SELECT 
     u.userName, 
     p.Text 
FROM 
     UserPosts up 
INNER JOIN 
     Users u 
ON 
     u.userID = up.userID 
INNER JOIN 
     Posts p ON p.postID = up.postID 
0
select Posts.text, 
     Users.userName 
FROM UserPosts 
INNER JOIN Users on UserPosts.userId = Users.userId 
INNER JOIN Posts on UserPosts.postId = Posts.postId 
0
SELECT userName, text FROM Users,Posts,UserPosts 
WHERE 
UserPosts.userID = Users.userId AND UserPosts.postID = Posts.postID 
+0

水平滾動是邪惡的:-) – 2011-12-28 21:11:38

+0

因此,編輯! – Darvex 2011-12-28 21:12:29

+0

我明確地不會-1你,因爲性能明智,他們是相同的使用'INNER JOIN'語法而不是你的解決方案。從可讀性的角度來看,我更願意明確指出JOIN類型。 – JonH 2011-12-28 21:18:55