2016-12-15 6 views
0

商品(ID、名前)とクライアント(ID、名前、電話番号)を持つテーブルが1つあります。 クライアント1は、30A、20B、100C、および0D1つのテーブルが製品の数である場合にテーブルを関連付ける方法

クライアント2は、10A、10B、10C、および10D

等を購入する購入すなわちまた、私は、各クライアントが購入した各製品の数、

を知ります

私は製品のテーブルとクライアントのテーブルを作成する方法を知っていますが、両方のテーブルをどうやって関連付けるのですか?たとえば、クライアント1が購入する製品の名前を表示するにはどうしたらいいですか?

歓迎

答えて

0

必要なものは、クライアントと製品をリンクする「関係」テーブルです。

私が購入情報を仮定は、列を持つ別のテーブル(ClientProductRelation)にあります。 - のClientID - のProductID - (あなたはどのくらいの製品のクライアントの購入をお知りになりたい場合にのみ必要)数量

その後、

SELECT TOP 1 cl.Name, pr.Description 
FROM ClientProductRelation AS cpr 
JOIN Clients AS cl ON cpr.ClientID = cl.ID 
JOIN Products AS pr ON cpr.ProductID = pr.ID 

(私はTOP 1が最高のチョイスではないですけど、それは最速のものです)

H:結合文を使用して、あなたは完全な情報を得ることができますこのヘルプを実行してください!

+0

問題は6製品で500クライアントです。 Client_ID-Product_ID-Quantityテーブルの3000個のエントリではなく、別の方法が必要であると確信しています – Exploitation

0

トランザクション/オーダーのテーブルを作成します(id、Custid、Prodid、quantity、datetime)。 そのようにすれば、次のようなことができます。

SELECT 
    c.name, 
    p.name, 
    o.quantity, 
    o.id, 
    o.datetime 

FROM 
    orders o 
JOIN 
    customers c 
ON o.custid = c.id 
JOIN products p 
ON o.prodid = p.id 

WHERE c.id = 1 
+0

乾杯したいのですが、(可能であれば)避けたいのはcustomer_idとproduct_idのテーブルを作成することです。 500人のcostumersと6つの製品がたくさんある... 私が言ったように運動はテーブルを提示する、私はトリックがそこにあると思う...しかし、私は考えることができるすべての場合、テーブルにIDが... – Exploitation

+0

IDと顧客IDと製品IDで構成された4番目のテーブルを作成し、そのIDを購入数量と購入時間のテーブルに入れることができますが、これは単なる不要な作業ですが、あなたがそれを望む理由を知っているでしょうか?(おそらく顧客が製品を購入している指標に基づいています) – SoDupuDupu

+0

私が提案したテーブルは、製品の注文ごとに1人の顧客あたりのエントリがあり、500×6行以上です。テーブルはまだデータテーブルが行く限り、小さいだろう。 – SoDupuDupu

関連する問題