2014-01-17 145 views
0

在我的應用程序中,我有以下客戶,產品。我想爲每個客戶有一定的產品(一對多的關係),我的代碼:Sql一對多關係

表創建:

Create Table Client 
(
IDC int identity(1,1) not null primary key, 
NumeC nvarchar(50), 
CIF nvarchar(50) unique 
) 
Create Table Produs 
(
IDP int identity(1,1) not null, 
NumeP nvarchar(50), 
Cantitate int, 
IDC int 
) 

這個外鍵:

Alter table Produs add constraint FK_Client_Produs_IDC 
Foreign key (IDC) references Client(IDC) 

Select語句查詢加盟客戶和客戶展示產品:

Select NumeC,CIF from Client 
Inner Join Produs 
ON Client.IDC = Produs.IDC 

我不知道我在做什麼克錯,我只是想爲每個客戶展示產品。它並沒有給我。它只是重複客戶的名稱,現在向我顯示每個客戶的產品

回答

3

在你的SELECT你永遠不會包含Produs表中的任何內容,所以它爲什麼會顯示給你。

Select NumeC,CIF,NumeP 
from Client 
Inner Join Produs 
ON Client.IDC = Produs.IDC 
+0

是的,謝謝你,但它會告訴我每個產品的客戶名稱。示例:1客戶端的DataGridView1和另一個客戶端的產品的DataGridView2分開。當您單擊DataGridView1中的一行以顯示與DataGridView1(ROW)中選擇的客戶端相對應的DataGridView2中的產品時。 – user3144640

+0

您需要的是在DataGridView1中編寫'on click'或'press''事件,該事件將查詢與該客戶端相關的所有產品的數據庫。這完全超出了你原來的問題範圍。 – 2014-01-17 20:03:37

+0

是的,我知道,我會將其標記爲答案,但我有另一個問題,我將有客戶和產品的歷史記錄,因爲您看到CIF是獨一無二的。所以當dataGridView1中的Click事件發生時,我怎麼知道要在Where子句中輸入什麼,請從客戶端選擇NumeC,CIF,NumeP 內部加入產品 ON Client.IDC = Produs.IDC其中CIF =會用不同的產品重複同一客戶如何選擇相應的產品? – user3144640