В PHP оператор SELECT возвращает true, обновите другую таблицу с ее первичным ключом - PullRequest
2 голосов
/ 30 июня 2011

У меня есть две таблицы (art и artlocation), которые имеют три общих столбца (series, style и location). Что я хочу сделать, это определить, если все три поля точно совпадают в ОБАХ таблицах, то UPDATE одна из таблиц (как внешний ключ) с первичным ключом другой.

Это запрос, который я выполнил, чтобы определить, есть ли совпадение:

SELECT * FROM 'artlocation'  
  JOIN 'art' ON artlocation.series = art.series
  WHERE artlocation.style = art.style
    AND artlocation.location = art.location;

Я хочу получить первичный ключ из любого совпадения из таблицы «artlocation» и обновить поле внешнего ключа таблицы «art». Но я не могу понять это: (

Пожалуйста, помогите ... заранее спасибо !!

Ответы [ 2 ]

1 голос
/ 30 июня 2011

Если я понимаю ваш вопрос, вам нужно несколько таблиц UPDATE. Вы можете использовать JOIN в части таблицы UPDATE

UPDATE art
  JOIN artlocation ON art.series = artlocation.series 
                  AND art.style = artlocation.style 
                  AND art.location = artlocation.location
  SET art.location = artlocation.id
1 голос
/ 30 июня 2011

Если я понимаю, что вы имеете в виду правильно, я думаю, что это будет работать

Update art 
    LEFT JOIN artlocation al ON al.series = art.series 
SET [ Your Columns Here ]  
WHERE al.style = art.style AND al.location = art.location
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...