如何将四个查询合并到一个查询中?我的表的
问题描述:
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查询会是什么?
答
你不想一起参加这些活动。
你用来检索的JOIN
最终会找到它找到的所有行的叉积。这意味着如果您有4条帖子,2条评论,3条评论和6条收藏夹,您可以在结果中获得4 * 2 * 3 * 6行,而不是在进行单独查询时获得4 + 2 + 3 + 6。
你想要JOIN
的唯一时间是两件事情在内在相关时。也就是说,您想检索与收藏夹,投票或评论相关的帖子。
根据你的例子,这些东西没有这种共性。
+0
哦,非常感谢你:) – Marcin 2013-05-03 09:46:29
你知道'UNION'和'JOIN'有什么区别吗? – 2013-05-03 00:08:12
你有没有试过学习'JOIN's? – Patashu 2013-05-03 00:10:06
目前尚不清楚你想要什么?你想通过邮寄评论评论吗?用户通过邮件?你想要发布信息的评论吗?请更清楚。 – medina 2013-05-03 00:11:15