7

カレンダーと顧客テーブルの 2 つのテーブルがあります。カレンダー テーブルには、値として顧客テーブル「ID」を持つ「顧客」列があります。残念ながら、このカレンダーの顧客フィールドの値には、他の値が誤って入力されていました。どちらのテーブルにも、Date、SeatingID、および BusID という共通フィールドがあります。これらの共通フィールドに基づいてカレンダー テーブルの顧客フィールドを更新する方法は?.

以下は、両方のテーブルの構造です。

顧客テーブル ここに画像の説明を入力

カレンダー表

ここに画像の説明を入力

4

4 に答える 4

7

次のように 2 つのテーブルをing することで、最初のテーブルから2 番目のテーブルUPDATECustomerフィールドを取得できます。CalendarCustomerJOIN

UPDATE calendar c1
INNER JOIN Customer c2 ON c1.SeatingID = c2.SeatingID AND c1.BusID = c2.BusID
SET c1.Customer = c2.ID --or SET c1.Customer = c2.PassengerName or whatever you want.

SET句では、更新する列を設定できます。また、JOIN任意の述語に基づいて 2 つのテーブルを設定することもc1.SeatingID = c2.SeatingID AND c1.BusID = c2.BusIDできますが、必要に応じて適切なものを選択できます。

ここにSQL Fiddleのデモがあります

于 2012-09-29T07:01:56.650 に答える
1

このコードを試してください:

UPDATE calendar cal, customer cust 
SET cal.Customer = cust.ID
where cal.SeatingID = cust.SeatingID 
and cal.BusID = cust.BusID
and cal.DATE = cust.DateOfTravel;

SQLフィドルデモ

ここに詳細情報へのリンクがありますupdate

于 2012-09-29T07:49:17.533 に答える
1
update calendar ca left join customer c 
on c.DateofTravel=ca.Date and c.SeatingID=ca.SeatingID and c.BusID=ca.BusID 
set 
ca.Customer=c.ID;
于 2012-09-29T09:28:34.930 に答える