-2

私は2つのテーブルを持っています

Bid_customer

|bidkey | customerkey
|  1    | 1
|  1    | 2
|  1    | 3

customer_groups

| groupkey | customerkey 
|    1     |      1
|    1     |      2
|    1     |      3

私が取得しようとしているのは、次のような結果になります

| bidkey | groupkey
|    1   |      1

カーソルを試して参加しましたが、アイデアや提案が必要なものを取得できないようです

編集:顧客は複数のグループに属することもできます

4

2 に答える 2

2

サンプルデータが誰に意味があるのか​​わかりません。ただし、以下は簡単な例です。

クエリ:

select distinct b.bidkey, g.gkey
from bidcus b
inner join cusgroup g
on 
b.cuskey = g.cuskey
and g.gkey = 10;

結果:

BIDKEY  GKEY
1       10

参照:SQLFIDDLE

于 2012-11-26T12:55:35.597 に答える
1

データベースで多対多の関係を機能させるには、関係を定義する中間テーブルを用意して、値の重複や不一致が発生しないようにする必要があります。

このselectステートメントは、顧客が一致するため、すべてのグループのすべての入札に参加します。

Select bidkey, groupkey
From customer_groups
Inner Join bid_customer
Where customer_groups.customerkey = Bid_customer.customerkey

彼女は多対多の関係のサンプルです:

多対多の関係

あなたの質問のために:
あなたはデータを結合する別のテーブルが必要になります。例えば、GroupBids

customer_groupsbid_customer1対多の関係がありますGroupBids

次に、次の選択を行ってデータを取得します。

Select bidkey, groupkey 
From bid_customer 
inner join GroupBids 
   ON bid_customer.primarykey = GroupBids.idBidKey
inner join customer_groups 
   ON customer_groups.primarykey = GroupBids.idCustomerGroupkey

これにより、関連するグループと入札のみが返されるようになります

于 2012-11-26T12:52:49.200 に答える