2013-02-27 2 views
-2

Я использую PHP и MySQL, и у меня есть 2 таблицы, содержащие поля number и name. Поле name в таблице1 пусто по умолчанию и где есть строка в таблице2 с соответствующим номером, я хотел бы обновить имя в таблице1.Как выбрать и обновить из 2 таблиц

Следующий псевдокод иллюстрирует это:

select number, number 
from table1, table2 
    if number from table1 == number from table2 
    then insert or update name from table1 with the value of name from table2 
+3

Ваш вопрос непонятен! – Asteriskiiii

+1

Вопрос не достаточно ясен, чтобы дать вам точный ответ. Но я думаю, что вы ищете http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html – JodyT

+0

, пожалуйста, посетите эту ссылку [http://www.4shared.com/ rar/MAJT3jqR/table.html) мой более четкий вопрос вместе со структурой таблицы и изображением – batman

ответ

0

В MySQL вы можете сделать

UPDATE table1 t1 
INNER JOIN table2 t2 ON t1.number = t2.number 
SET t1.name = t2.name 

более ANSI ответ, где вы не можете рассчитывать на вступление в операторе обновление будет опираться на суб- запросы, например:

UPDATE table1 t1 
SET name = (SELECT name FROM table2 t2 WHERE t2.number = t1.number) 
WHERE EXISTS (SELECT 1 FROM table2 t2 WHERE t2.number = t1.number) 

ГДЕ гарантирует, что вы обновляете колонку только там, где есть соответствующая строка.

+0

Я верю, что вы можете мне помочь еще больше. посмотрите пожалуйста. [link] (http://www.4shared.com/rar/MAJT3jqR/table.html) спасибо в продвинутом – batman

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