1

2 つのテーブルcustomers(列 A, B) とorders(列C, D, A; 最後のテーブルは外部キー) があります。

このクエリは、関心のあるデータを返します。

SELECT customers.A, customers.B, orders.C, orders.D 
FROM customers, orders
WHERE customers.A = orders.A AND customers.B < 5 AND orders.D < 5

を追加するLIMIT 10と、最初の 10 件の結果 (基本的には 10 件の注文) が得られますが、やりたいことは、ユニーク顧客の数に基づいて出力を制限することです。そのため、結果にはちょうど 10 人の一意の顧客が含まれるため、少なくとも 10 件 (おそらくそれ以上) の注文があります。サブクエリでそれを行うことは可能だと思いますが、わかりません。

4

2 に答える 2

2

このようなもの:

SELECT c.A, c.B, orders.C, orders.D 
FROM (SELECT * FROM customers WHERE customers.B < 5 
      ORDER BY ....some-criteria... 
      LIMIT 10) c,
     orders
WHERE c.A = orders.A AND orders.D < 5

(sqlite がサブクエリで正常に解析されることを確認しました。これを黙ってLIMIT無視しないことを願っています)。LIMIT

于 2013-01-10T18:29:23.537 に答える
2
SELECT customers.A, customers.B, orders.C, orders.D 
FROM customers, orders
WHERE customers.A IN (
    SELECT DISTINCT customers.A 
    FROM customers, orders
    WHERE customers.A = orders.A AND 
          customers.B < 5 AND 
          orders.D < 5
    LIMIT 10
) AND customers.A = orders.A AND orders.D < 5 

サブクエリは、B < 5 で D < 5 の注文が少なくとも 1 つある 10 の異なる顧客を選択します。 Bをもう一度確認してください)

于 2013-01-10T19:04:07.773 に答える