0

我有 3 个表:用户、日志、log_entries。一个用户有很多日志,一个日志有很多条目。它看起来像这样

zzz

假设有 100 个用户,每个用户有 1000 个日志,每个日志有 1000 个条目。这意味着 log_entries 表中将有 100 000 000 行,当我想从日期 x 检查日志时,它需要从 100 000 000 行中过滤我想要的数据。

请问这个的正确解决方案是什么?

4

1 回答 1

0

你可以使用INNER JOINand 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 表中。

于 2013-02-17T17:30:46.313 回答