Ich versuche Data1 zu aktualisieren 's ID zu Record2' s ID wenn:SQLite - Aktualisieren einer Spalte basierend auf den Werten von zwei anderen Tabellen Spalten
- Record1 und Record2Name sind die gleichen, und
- Gewicht ist größer in Record2.
Record1
| 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 |
Ich habe die folgende SQLite Abfrage versucht:
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)
die obige Abfrage Data1 Mit ‚s id-4 für alle Datensätze aktualisiert wird.
HINWEIS: Record1 ‚s ID ist der Fremdschlüssel für Data1.
@ CL. Diese Frage verwendet drei Tabellen und ich kann nicht die gleiche Abfrage verwenden, die Sie für diese Abfrage angegeben haben. – Prabha
Wenn ich die Abfrage schreiben, wie vorgeschlagen, dann ist es nicht record1.name Update data1 gesetzt id = (wählen record2.id aus record2 wo record1.name = record2.name und record1.weight
Prabha