2016-07-14 6 views
1

Я пытаюсь обновить Record1 's ID в Record2' ы ID когда:SQLite - Обновление столбца на основе значений из столбцов другой таблицы

  • Имя является то же самое в обеих таблицах, и
  • Вес больше в 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 | 

Я пробовал следующий SQLite запрос:

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

Использование вышеуказанный запрос Record1ID обновлен до 4 для всех записей.

ответ

1

Письмо SELECT ...record1 представляет новый экземпляр таблицы record1, которая скрывает внешний.

Чтобы иметь возможности ссылаться на текущую строку во внешнем запросе, просто удалите table1 из ЕКА:

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

Это сработало! Большое вам спасибо @CL. – Prabha

Смежные вопросы