わかりましたので、これが私のデータベースの抜粋です
customers- ID, Fname, LName, Username, Password
Products - ProductsID, Name
Requests - requestid, productsid[fk for products table], cid[fk for customers table],
quantity, matchType
sellers - saleid, productsid[fk for products table], cid[fk for customers table], quantity
price.
したがって、それらは外部キーを示すFKを持つ私のテーブルです...今私が抱えている問題は、これがテーブル値からの抽出物であると言うことです
customers=1,John,Smith,js123,123
customers=2,Joe,bloggs,jb555,abc
products=1,Sweets
products=2, chocolate
requests=1, 2, 1, 200, Exact
requests=2, 1, 1, 50, HighQuality
sellers =1,2,2,200,5.00
ここで何が起こっているかというと、2 人の顧客と 2 つの製品 (お菓子とチョコレート) があるということです。要求テーブルには、requestid [主キー]、製品 ID、製品を要求した顧客 ID、グラム単位の数量が表示されます。一致を表示する方法。したがって、最初のリクエストを取得すると、次のようになります... REquestID 1[pk]、chcolates(2) を希望している場合、choclates を希望するユーザーは john smith であり、彼は自分のリクエストに正確に一致する 200 グラムの価値があることを望んでいます。 .. 現在、200 グラムの chcolates を £5.00 で販売している joe bloggs という売り手がいます... 今、私が抱えている問題は、この売り手を適切な顧客に一致させるクエリをどのように実行するかということです。つまり、顧客の matchTYPE(pre-fences) に基づいて販売者名をリストします。これは私が試したものです:
select c.Fname, c.Lname, p.Name FROM customers c, Products p, Requests, sellers
WHERE c.ID=sellers.cid AND p.ProductsID=sellers.productsid
これにより、すべての販売者名と販売している製品の名前がリストされます。ただし、要求テーブルで単語が EXACT である製品のみを表示したい..したがって、正確な数量のみに一致します。だから、私は試しました:
select c.Fname, c.Lname, p.Name FROM customers c, Products p, Requests, sellers
WHERE c.ID=sellers.cid AND p.ProductsID=sellers.productsid
AND Requests.productsid=sellers.productid AND Requests.matchType ='Exact'
私はこれを試しましたが、これは私が望むものを正しく出力しません。出力を次のように修正するにはどうすればよいですか。
joe,bloggs,choclates
したがって、これは requestid 1 where と一致します。しかし、私はこの出力を得ることができません。誰かが私を助けてくれますか? 確かに、products.idをsellers.productsidと照合すると名前が表示され、次にrequests.productidとseller.productidを照合すると、WHERE requests.matchType='Exact'が機能するはずです? しかし、私が期待する出力は表示されません。