2011-03-23 3 views
4

Я хотел бы заменить столбец данных в таблице.Заменить столбец данных другим столбцом из другой таблицы

TableA
Uid - INT
AnotherUid - INT

TableB
Uid - INT

TableA.uid = Table.B Uid И я пытаюсь заменить TableB.Uid с TableA .AnotherUid

Select * from TableB a, TableA b where a.uid=b.uid 
update TableB set a.uid=b.AnotherUid 

я получил ошибку синтаксиса SQL из MySQL в TableB набор a.uid = b.An otherUid.

Просьба помочь.

ответ

6
UPDATE TableB T 
    SET T.uid = 
    (SELECT AnotherUid 
    FROM TableA A 
    WHERE A.uid = T.uid) 
+0

кто-то любит Это? я собирался удалить, но угадайте, оставьте его. им неудобно с этим, поскольку он стоит, и у меня нет средств для тестирования прямо сейчас. alocus - plz дайте мне знать, если вам повезло с этим –

+0

Кажется мне прямо –

+0

Я пытаюсь это сделать и получить синтаксическую ошибку. Но этот запрос имеет гораздо больше смысла, чем мой. – Alocus

2

Попробуйте этот запрос:

Update TableB, TableA 
Set TableB.uid = TableA.AnotherUid 
Where TableB.uid = TableA.uid; 

Для MySQL руководства по присоединиться в запросе Update см: http://dev.mysql.com/doc/refman/5.0/en/update.html и увидеть этот пример в их документ:

UPDATE items,month SET items.price=month.price 
WHERE items.id=month.id; 
5
UPDATE TableB SET TableB.Uid = (SELECT AnotherUid FROM TableA WHERE TableA.Uid = TableB.Uid) 
+0

Это работает. мог бы поддержать это. – Alocus

+0

Я просто получил достаточно очков, чтобы проголосовать =) – Alocus

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