2016-07-14 26 views
1

の値に基づいて列を更新します。名前があるSQLiteの - ときに私は<strong>レコード1</strong>さん<strong>ID</strong><strong>にRECORD2</strong>の<strong>ID</strong>を更新しようとしている別のテーブルの列から

  • 両方のテーブルで同じであり、
  • 重量は、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 | 

私は、次のSQLiteのクエリを試してみました:

update record1 
set id = 
    (select record2.id 
    from record2,record1 
    where record1.name=record2.name 
    and record1.weight<record2.weight) 

を使用上記のクエリレコード1IDは、すべてのレコードで4に更新されています。

答えて

1

書き込みSELECT ...record1には、外側のテーブルを非表示にするrecord1テーブルの新しいインスタンスが導入されています。

だけFROM句からtable1を削除し、外側のクエリの現在の行を参照できるようにするには:

UPDATE record1 
SET id = (SELECT record2.id 
      FROM record2 
      WHERE record1.name = record2.name 
      AND record1.weight < record2.weight); 
+0

それは働きました!ありがとう@CL。 – Prabha

関連する問題

 関連する問題