2013-09-02 3 views
0

У меня есть 2 таблицы.Как обновить строки одной таблицы со значениями из другой таблицы на основе общего параметра

Table A with the following columns 
Id title desc type 


Table B with the following columns 
Id type 

Я хочу, чтобы в основном обновить все строки таблицы А, в которой я хотел бы заменить тип со значением Id таблицы B, который имеет соответствующий одинаковый тип.

Например

Table A can have 
1 ,test1 ,ddd, play 
2 ,test2 ,ddd2, go 
3 ,test3 ,ddd3, play 


Table B has 
1, play 
2, go 

Так что я хочу, чтобы иметь возможность выполнить запрос так Таблица A выглядит как

1 ,test1 ,ddd, 1 
2 ,test2 ,ddd2, 2 
3 ,test3 ,ddd3, 1 

Как это может быть достигнуто в запросе «SqlLite»?

+0

возможно дубликат [Как сделать UPDATE во время объединения таблиц на SQLite?] (Http://stackoverflow.com/questions/773441/how-do-i-make-an-update-while- joeing-tables-on-sqlite) – Barmar

ответ

1
UPDATE tableA tA 
JOIN tableB tB 
ON tA.type = tB.type 
SET tA.type = tB.Id 
+0

Я продолжаю получать «ошибку около tA», может ли быть, что SQLITE отличается от MYSQL? Я использую SQL lite – Snake

+0

Я сделал поиск, и похоже, SQLite не поддерживает Join in update. Я надеюсь, что я ошибаюсь – Snake

+0

По-видимому SQLite разрешает коррелированные подзапросы. См. Http://stackoverflow.com/questions/773441/how-do-i-make-an-update-while-joining-tables-on-sqlite – Barmar