2

私は SQL の初心者であり、最も基本的な SQL クエリしか実行できず、この問題について何か助けていただければ幸いです。

MySQL データベースには、CUSTOMER テーブルと PURCHASES テーブルが含まれています。顧客が購入した場合、1 つ以上のシリアル番号と購入日が PURCHASES テーブルに表示されます。

2 つの日付の間に購入した顧客ごとに、顧客名、シリアル番号、購入日を返す方法を知りたいです。

テーブルの説明は次のとおりです。

購入

  • 顧客ID
  • シリアルナンバー
  • 購入日

お客様

  • 顧客ID
  • 顧客名
  • 顧客住所
4

2 に答える 2

3

ここにあります:

select c.customer_name, p.serial_number, p.purchase
from purchases p, customers c
where p.customer_id = c.customer_id and
p.purchase between '2012-08-27' and '2012-08-31'

SQL Fiddle はここにあるので、それで遊ぶことができます: http://sqlfiddle.com/#!2/e8002/3

于 2012-08-31T17:47:47.277 に答える
1

JOIN2 つのテーブルが必要です。結合の概念については、MySQL のドキュメントを参照してください。

2 つの日付の間の購入に関するクエリを制限する必要があります。

WHERE purchase BETWEEN 'date1' AND 'date2'

これにより、顧客IDがわかります。これで Customers テーブルを選択すると、次のようになります。

SELECT customer.customer_name,
       purchases.serial_number,
       purchases.purchase
    FROM customer
    JOIN purchases ON (customer.customer_id = purchases.purchase_id)
    WHERE purchases.purchase BETWEEN '2012-01-01' AND '2012-08-01';
于 2012-08-31T17:53:39.540 に答える