次のようなテーブルがあるとします。
**tablename**
ID Name Size Date AtStore1 AtStore2
1 Apple Medium 20120101 Yes
2 Pear Medium 20111231 Yes Yes
3 Lemon Small 20111231 Yes Yes
4 Orange Small 20111231 Yes
5 Carrot Medium 20111231 Yes
6 Potato Small 20111231 Yes
7 Celery Large 20111231 Yes
8 Onion Medium 20111231
9 Tomato Medium 20111231
10 Apple Medium 20111231
12 Pear Medium 20111230 Yes Yes
13 Lemon Small 20111230 Yes
14 Orange Small 20111230 Yes
15 Carrot Medium 20111230 Yes
16 Potato Small 20111230
17 Celery Large 20111229
18 Onion Medium 20111229 Yes
19 Tomato Medium 20111229
行ごとにすべてのデータを取得する効率的なクエリを構築できますか?
- その日の AtStore1 に少なくとも 4 つの「はい」がある「はい」の AtStore1 行 1 日
OR (包括的) - AtStore2 に「はい」があります
行の前方参照など、最初のパラメータのみが満たされている場合も許容されます。必要に応じて、AtStore2 部分を PHP でスクリプト化できます。私の試みはすべて惨めに失敗しました。Google で効果的に質問を書く方法についての私の試みも実りがありませんでした。
(PHPでコードのさまざまな部分に物事を分割する回答も問題ありません。合理的に効率的なものが欲しいだけです。)
この例のテーブルでは、次の行が予想されます。
ID Name Size Date AtStore1 AtStore2
1 Apple Medium 20120101 Yes
2 Pear Medium 20111231 Yes Yes
3 Lemon Small 20111231 Yes Yes
4 Orange Small 20111231 Yes
5 Carrot Medium 20111231 Yes
6 Potato Small 20111231 Yes
7 Celery Large 20111231 Yes
12 Pear Medium 20111230 Yes Yes
14 Orange Small 20111230 Yes
15 Carrot Medium 20111230 Yes
18 Onion Medium 20111229 Yes
ご覧のように
- 2012 年 1 月 1 日
- いいえ AtStore1 ではい -
AtStore2 にははいがあるため、行が返されます - 12 月 31 日
-5 AtStore1 が Yes であるため、それらが返されます (AtStore2 が ID 2 および 3 で Yes であっても十分でした)
- AtStore2 が Yes であるため、ID 7 も持ちます - 返された残りの行は、AtStore2 の Yeses が原因でした。