2013-05-03 40 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