0

users、logs、log_entries の 3 つのテーブルがあります。1 人のユーザーには多くのログがあり、1 つのログには多くのエントリがあります。このようになります

zzz

100 人のユーザーがいて、各ユーザーには 1000 のログがあり、各ログには 1000 のエントリがあるとします。これは、log_entries テーブルに 100 000 000 行あることを意味し、日付 x からログを確認したい場合、100 000 000 行から必要なデータをフィルター処理する必要があります。

これに対する正しい解決策は何ですか?

4

1 に答える 1

0

あなたが使用することができ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テーブルにも含めます。

于 2013-02-17T17:30:46.313 に答える