そのため、SQL と PHP を使用しているときに小さな問題が発生します。私は、顧客、要求、製品、販売者の 4 つのテーブルを持つ SQL データベースを持っています。現在、各テーブルには自明のデータが含まれています。顧客テーブルには顧客、ID、名前、住所、電子メールなどのリストがあり、製品テーブルには製品 ID と名前があり、要求テーブルには顧客が作成した製品の要求がrequest id[pk], custID[fk from customer table], productid[fk in products table], quantites_requested, price_requested
. 販売者テーブルには、次のようなデータが含まれています。sellersid[pk], customerid[fk from customer table], productsid[fk in products table], quantites_advertised, price_advertised
ここで私がやりたいことは、顧客が productid= 1(chocolate),customer id=1, 10kg を £10.00 で要求したとします。したがって、このデータは DB に保存されます。現在、さまざまなチョコレートの販売者がいる可能性があります。私がやりたいことは、顧客の注文、つまり 10 kg のチョコレートをできるだけ安い方法で満たすことです。販売者を組み合わせるか、最も安い販売者を 1 つ選択します。たとえば、これはsellersテーブルです。注: セラー テーブルは次のように構成されていますsellerid[pk],customerid[fk],productid[fk],quantity_advertised, price_advertised
。ここにいくつかの例の売り手があります...
1,2,1,4.00,2.00 -- This means customer id 2 is selling chocolates, for 4KG's @£2.00
2,3,1,5.00,2.50
3,4,1,1.00,1.00
4,5,1,10.00,6.00
これで、次のような要求があります
1,1,1,10.00,5.00 -- i.e. customer1, wants chocolates of 10kg for £5.00...
今、私は顧客の10kgの注文を履行したいと考えています. だから私がする必要があるのは、顧客にとって最も安い価格を選択することです. これは、kg が 5.4 で 1kg=10kg の売り手 2、3、および 4 を選択することで実行できます。この場合、合計で £2.00+£2.50+£1.00=£5.50 の費用がかかり、10kg を 6.00 で供給できる売り手 5 よりも安くなります。 . SQLクエリを使用して、最初に顧客の要求の製品IDを売り手の製品IDと照合することで、このようなことができると思いますSELECT c.Name, p.Name, s.quantity,s.price WHERE c.id=s.customerid AND p.id=s.productid AND s.quantity WHERE r.productid=s.productid FROM requests r, sellers s
.最も費用対効果が高いと見なすには?クエリのどこかでMINを使用する必要があると思いますか?
誰かが述べたようにクエリを構築する方法を教えてくれますか? つまり、顧客の完全な要求は、可能な限り安価な方法で満たされる必要があります。