2013-07-05 6 views
0

Я пытаюсь обновить столбец в MySQL (XAMP) со следующим кодом -обновить столбец В MySQL таблицы с обновлением и выберите заявление

UPDATE firm SET `fk_contact_details_id` = SELECT 'id' FROM contact_details WHERE contact_details.name = firm.name 

, но я получаю следующее сообщение об ошибке:

*#1064 - You have an error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near 'SELECT 'id' FROM contact_details WHERE 
contact_details.name = firm.name' at line 1* 

Может ли кто-нибудь сказать мне, что не так в моем заявлении, пожалуйста?

ответ

0

Вместо:

SELECT 'id'

использования

SELECT id

Полный запрос:

UPDATE firm 
    SET `fk_contact_details_id` = (
     SELECT 
      id 
     FROM 
      contact_details 
     WHERE 
      contact_details.name = firm.name 
     LIMIT 1 
    ) 
+0

Этот запрос, кажется, работает, но я получаю эту ошибку: # 1242 - Подзапрос возвращает более 1 строки – Alwina

+0

это означает, что у вас есть больше строк в 'contact_details' с этим именем ... простое решение состоит в том, чтобы добавить' LIMIT 1' в select – Stephan

+1

Но это не решит проблему с дизайном базы данных. Почему существует несколько фирм с одинаковыми именами и разными идентификаторами? Правильно ли это? Возможно, Alwina должна думать о создании уникального ключевого ограничения для поля «name». – cathulhu

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