2016-04-05 5 views
0

これは私が試したコードですが、私は誰もこれを動作させる方法を知っているだろうと思ったとして失敗しますか?おそらく2つのテーブルを使用して異なるregnoにインストラクタを割り当てるSQLクエリ

UPDATE Instructor,Car 
SET CarNo='3', regNO ='RF10 AAF' 
WHERE CarNo='7',regNo='QW64 YTR'; 
+0

問題を解決してください。テーブル構造はなく、タイトルにはregnoも講師も必要なく、書式はありません。最後に、「更新結合」を検索する必要があります。 –

+0

もし私がちょうど1つのテーブルを更新すれば、それはうまくいけば教師の更新です。 SET CarNo = '3' WHERE CarNo = '7'; しかし、私は同時にインストラクターと車で2つのテーブルを更新したい。 – Makurious

+0

単一の更新クエリで1つのテーブルのみを更新できます。 carテーブルとinstructorテーブルの両方を更新する場合は、2つのUPDATEステートメントが必要です。しかし、どのフィールドがどのテーブルに属しているかがはっきりしていないため、何をしようとしているのかは不明です。 –

答えて

0

このような何か:あなたは、これはあなたがが何をしたいかであることを確認する必要があります

BEGIN TRANSACTION 

UPDATE Instructor SET CarNo='3' WHERE CarNo='7'; 

UPDATE Car SET regNO ='RF10 AAF' WHERE regNo='QW64 YTR'; 

COMMIT; 

。インストラクターがすでに登録番号3を持っている車3に関連付けられている場合は、Carテーブルを更新する必要はありません。インストラクターの車を更新するときは、インストラクターは新車の登録番号に関連付けられていなければなりません(carNoに基づいてインストラクターとカーテーブルの間に関係があると仮定します)。

+0

は上記を試しましたが、このエラーメッセージが表示されます。クエリが失敗しました:エラー: "UPDATE"またはそれに近い構文エラーLINE 3:UPDATEインストラクターSET CarNo = '3' WHERE CarNo = '7' ^。 – Makurious

+0

BEGIN TRANSACTIONの後にセミコロンが必要な場合があります。私はあまりよく分からない、私はPostgresではなくT-SQLを書いた。 -/ –

+0

staementの最初の部分はうまくいきましたが、icanは彼をcarno 3に改名しましたが、私は彼のcarnoとregを他のドライバーのものに切り替える必要があると思いますこれを行う方法は、あなたが分かりますか?更新する代わりに、私は別のドライバで場所を切り替える必要があります。彼が今持っている必要がある車を持っている人は、これについて完全にはっきりしていなければ、意味が分からない。 – Makurious

関連する問題