Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有 3 个表:用户、日志、log_entries。一个用户有很多日志,一个日志有很多条目。它看起来像这样
假设有 100 个用户,每个用户有 1000 个日志,每个日志有 1000 个条目。这意味着 log_entries 表中将有 100 000 000 行,当我想从日期 x 检查日志时,它需要从 100 000 000 行中过滤我想要的数据。
请问这个的正确解决方案是什么?
你可以使用INNER JOINand CONCAT:
INNER JOIN
CONCAT
SELECT * FROM Users U INNER JOIN Logs L ON U.UserId = L.UserId INNER JOIN Log_Entries LE ON CONCAT(L.UserId,'|',L.Session_Start) = LE.UserIdSession_Start
但是,我建议更改您的表结构——这很奇怪。至少,将 Log_Id 添加到 Logs 表中,并将该字段也包含在 Log_Entries 表中。