私はのData1更新しようとしているのIDにRECORD2のID:のSQLite - 2他のテーブルからの値に基づいて列を更新する列
- レコード1をとレコード2の名前はと同じであり、
- 重量はRecord2で大きくなります。
レコード1
| ID | Weight | Name |
|----|--------|------|
| 1 | 10 | a |
| 2 | 10 | b |
| 3 | 10 | c |
RECORD2
| ID | Weight | Name |
|----|--------|------|
| 4 | 20 | a |
| 5 | 20 | b |
| 6 | 20 | c |
のData1
| ID | Weight |
|----|--------|
| 4 | 40 |
| 5 | 40 |
私は、次のSQLiteのクエリを試してみました:
update data1
set id =
(select record2.id
from record2,record1
where record1.name=record2.name
and record1.weight<record2.weight)
where id in
(select record1.id
from record1, record2
where record1.name=record2.name
and record1.weight<record2.weight)
のData1さんIDは、すべてのレコードに対して4に更新されて上記のクエリを使用しました。
注:レコード1さんIDはのData1の外部キーです。与えられたデータについては
@ CL。この質問は3つのテーブルを使用しており、私はあなたのためにあなたに提供されたものと同じクエリを使用することができません。それはrecord1.name 更新DATA1 設定ID = を認識しません示唆したように、私は、クエリを記述する場合 – Prabha
(RECORD2 record1.name = record2.name とrecord1.weight
Prabha