複数のテーブルがあります。
- コンテスト
- エントリー
- ユーザー
ユーザーはコンテストにエントリを送信できます。ユーザーはコンテストに複数のエントリを送信できます。
特定のコンテストにエントリを送信したユーザーの電子メールを知る必要があります。メールは user テーブルにあります。
コンテストからすべてのエントリを取得することはそれほど難しくありません。私は次の方法でこれを達成します。
$entries = Contest::find(1)->entries()->first();
これで、ID が 1 のコンテストに属するすべてのエントリが作成されました (使用など)。では、効率的な方法で users テーブルからすべてのユーザーの電子メールを取得するにはどうすればよいでしょうか?
リンクされている 3 つのテーブルで、コンテスト ID から始めて、そのコンテストからすべてのエントリを取得し、まだ取得できていないすべてのユーザー メールを取得する必要があります。
うまくいけば、これは理にかなっています。そうでない場合は、聞いてください!