1

次のテーブル構造があるとします。

Field1 Field2 Field3
val1   valb_1 date
val1   valb_2 date
val1   valb_3 date
val2   valb_4 date
val3   valb_5 date

フィールドが「val1」で提案されている例とまったく同じ値で埋められる可能性がある Field1 の最大 5 つの異なる値と、フィールドが常に異なるフィールドを持つ Field2 の最大 200 の値を制限するにはどうすればよいですか?価値。日付順で並べます。

また、Field1 の 5 の制限をできるだけ同等にする方法、たとえば 200 の制限の場合: 50 は val1 に属し、100 は val2 に属し、100 は field1 の val3 に属します。つまり、250 で、val 2 に 100 があり、 val 3 で 100、理想的には 200 の制限は、val1 で 50、val 2 と 3 のそれぞれで 75 の選択です。

4

1 に答える 1

0

何を達成したいのか正確にはわかりませんが、次のように考えてください。

3つの異なるクエリで解決でき、結果はUNIONでまとめられますか?

または、あなたが話しているこれらの制限は関連しているので、フィールド1の5つの値の場合、フィールド2の200の異なる値で表示されます。

CREATE VIEW F1LIMIT5  as SELECT DISTINCT Field1 from MYTABLE limit 5;
CREATE VIEW F2LIMIT200 as SELECT DISTINCT Field2 from MYTABLE limit 200;
SELECT * from MYTABLE where Field1 in (SELECT * FROM F1LIMIT5) and Field2 in (SELECT * FROM F2LIMIT200) order by Field3 desc ;

しかし、これにより200を超えるレコードが得られる可能性があります。最後にLIMIT200を追加してそれを行うこともできますが、それがあなたの望むものであるかどうかさえわかりません。テクニックは、物事を小さなステップに分割し、それを基に構築することです。ビューを使用する方が複雑なクエリよりも優れていると思います。途中で各部分をテストして、必要なものが得られていることを確認できるからです。

于 2012-10-05T14:03:06.853 に答える