Mysql 如何连接两个表的一部分,而不是整个表

Mysql 如何连接两个表的一部分,而不是整个表,mysql,Mysql,我只是想知道,如果Mysql中有两个表,并且都有数百万条记录。 所以我们想把两个表的一部分连接起来。我们如何才能做到这一点。 根据我的说法,如果我们使用limit,那么它首先查询所有记录,然后限制结果。 谢谢你的建议。谢谢 假设有两张桌子。 用户:(自动增量中的id) 身份证、姓名、电子邮件、性别 用户操作:(此处用户id为外键) id、用户id、操作id、操作日期 我们需要为用户查询操作,但不是一次查询所有操作,因为表中的数据非常庞大您可以使用WHERE子句来限制联接中使用的记录。如果需要更多

我只是想知道,如果Mysql中有两个表,并且都有数百万条记录。 所以我们想把两个表的一部分连接起来。我们如何才能做到这一点。 根据我的说法,如果我们使用limit,那么它首先查询所有记录,然后限制结果。 谢谢你的建议。谢谢

假设有两张桌子。 用户:(自动增量中的id) 身份证、姓名、电子邮件、性别

用户操作:(此处用户id为外键) id、用户id、操作id、操作日期


我们需要为用户查询操作,但不是一次查询所有操作,因为表中的数据非常庞大

您可以使用WHERE子句来限制联接中使用的记录。如果需要更多详细信息,您必须提供有关如何选择表的部分的更多详细信息。

如果您希望向最终用户显示结果,您可以使用分页策略逐页显示结果(例如,每页50行)。 您可以使用mysql的limit关键字生成每个页面


您可以找到这个示例。

您应该在日期字段中添加索引,然后使用where子句表示小于一个日期而大于另一个日期。索引应允许您不搜索限制中的所有记录。

发布您的代码(表创建语句和查询)编辑了我的帖子。希望这能帮助您理解我的帖子question@rajesh,为什么要检查有限的记录。让MySQL做它最擅长的事情。即使两个表都有数百万条记录,您也可以在两个表上运行连接,并让MySQL为您查询所需的结果。别忘了使用正确的索引Hanks abhay,但我正在检查有效的方法。以一种不会因为一个巨大的查询而导致mysql崩溃的方式。但索引确实有帮助。除了索引还有其他方法吗?如果我们使用LIMIT,它会先获取所有记录,然后选择前10个(例如),还是不查询整个表,只给出前10个well@rajesh,MySQL之所以会因为一个查询而停机,主要原因可能是一个写得不好的查询和索引不好。我不确定限制是如何工作的,但我相信MySQL(或任何其他DB引擎)应该足够聪明,不会获取所有记录,然后检索10条。顺便问一下,你想做什么?与其问如何连接表的各个部分,还不如问一个更直接的问题:您想做什么?但这样它会检查所有记录,以匹配where子句。我想查看有限的记录