2013-05-03 44 views
0

結構:如何將四個查詢合併到一個查詢中?我的表的

posts (id, name, user_id, about, time)  
comments (id, post_id, user_id, text, time) 
users_votes (id, user, post_id, time) 
users_favs (id, user_id, post_id, time) 

我如何可以結合這四個查詢(不與UNION):

SELECT `id`, `name`, `user_id`, `time` FROM `posts` WHERE `user_id` = 1 
SELECT `post_id`, `user_id`, `text`, `time` FROM `comments` WHERE `user_id` = 1 
SELECT `user`, `post_id`, `time` FROM `users_votes` WHERE `user` = 1 
SELECT `user_id`, `post_id`, `time` FROM `users_favs` WHERE `user_id` = 1 

我應該使用JOIN S'

SQL查詢會是什麼?

+1

你知道'UNION'和'JOIN'有什麼區別嗎? – 2013-05-03 00:08:12

+1

你有沒有試過學習'JOIN's? – Patashu 2013-05-03 00:10:06

+0

目前尚不清楚你想要什麼?你想通過郵寄評論評論嗎?用戶通過郵件?你想要發佈信息的評論嗎?請更清楚。 – medina 2013-05-03 00:11:15

回答

2

你不想一起參加這些活動。

你用來檢索的JOIN最終會找到它找到的所有行的叉積。這意味着如果您有4條帖子,2條評論,3條評論和6條收藏夾,您可以在結果中獲得4 * 2 * 3 * 6行,而不是在進行單獨查詢時獲得4 + 2 + 3 + 6。

你想要JOIN的唯一時間是兩件事情在內在相關時。也就是說,您想檢索與收藏夾,投票或評論相關的帖子。

根據你的例子,這些東西沒有這種共性。

+0

哦,非常感謝你:) – Marcin 2013-05-03 09:46:29