2012-01-11 3 views
0

Я хочу [обновление] TRANSACTION_ID из таблицы транзакций в CMAS таблицу, но я что-то ... не уверен, что не хватает, где ссылки на CMAS таблицу, чтобы она не ошибка #1054 - Unknown column 'cmas.property_id' in 'where clause'MySQL таблицы в таблицу SQL

INSERT INTO `cmas` (`transaction_id`) 
SELECT `transaction_id` 
FROM `transactions` WHERE transactions.property_id = cmas.property_id // this bit is wrong! 

ответ

2

Поскольку вы упоминаете обновления в комментариях, это может быть то, что вы ищете:

UPDATE cmas, transactions 
SET cmas.transaction_id = transactions.transaction_id 
WHERE transactions.property_id = cmas.property_id 
+0

Это сделало! Спасибо. – Robert

1

Вы должны это переписать так:

INSERT INTO `cmas` (`transaction_id`) 
SELECT `transaction_id` 
FROM `transactions` WHERE transactions.property_id IN (select property_id from `cmas`) 

Проблема нет выбора в левой части, поэтому выражение «transactions.property_id = cmas.property_id» является meaninless, потому что выбор на CMAS не делается.

+0

это работает, но оленья кожа обновлять CMAS TRANSACTION_ID – Robert

1
INSERT INTO cmas (transaction_id) 
SELECT transaction_id 
FROM transactions,cmas 
WHERE transactions.property_id = cmas.property_id 
+0

это работает (когда я изменить ВЫБОР для 'операций .transaction_id'), но не обновляет cmas transaction_id – Robert

+0

, так как это лучшее решение, чем мое, комментарий здесь: делает запрос «SELECT transaction_id FROM transaction, cmas WHERE transaction.property_id = cmas.property_id« возвращает что-нибудь? – kenota

+0

он делает, он возвращает transaction_id – Robert

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