私はLAMPを使用しています。MySqlには、列X、Y、Zのテーブルがあります。複数のセットとサブセットから個別のレコードを選択する必要があります。私の最初の基準がWHEREY=Aの場合; 次に、次のことができる必要があります。
- Y = Aのレコードを選択して、セットBを取得します。
- XがセットBにあり、Z = 123であるレコードを選択して、セットCを取得します。
- YがセットBにあり、Z = 456であるレコードを選択して、セットDを取得します。
- XがセットDにあり、Z = 789であるレコードを選択して、セットEを取得します。
テーブルがかなり大きくなる可能性があり、これをどこから始めればよいのかよくわかりません。いくつかの可能なアプローチは次のとおりです。
- 複数の個別のクエリがあります。この場合、一方のクエリの結果セットをキャッシュして、もう一方のクエリに使用するにはどうすればよいですか?Memcached?
- ネストされたサブクエリを使用します。しかし、内側のクエリの結果は、純粋に外側のクエリを制限するためのものですよね?それらを結果に表示するにはどうすればよいですか?
- UNIONを使用します。しかし、あるクエリの結果を保存して、別のクエリへの入力として使用するにはどうすればよいでしょうか。
- テーブルをそれ自体に複数回参加させます。これにより、外側の行が複数回繰り返されるデカルト結果が生成されます。これは、管理しやすいはずの多次元PHP配列にマップされます。パフォーマンスはどうですか?
私はオプション番号4に傾いていますが、100%確実ではありません。私は車輪の再発明をしていますか?
とても有難い...