Привет, ребята, новые для этого и нуждаются в указании в правильном направлении.Обновить таблицу с пустой колонкой с данными из другой таблицы, используя общий идентификатор из третьей таблицы
DB1 product_description [product_id, name, description]
* DB1.product_description.product_id
связан с category_id
в отдельном product_to_category_id table. category_id in table1 == cat_id
в DB2
.Inventory
DB1 product_description
------------------------------------------------------
| product_id | name | description |
-------------------------------------------------------
| 999 | product999 | description text |
| 1000 | product1000 | |
| 1001 | product1001 | |
| 2000 | product2000 | |
-------------------------------------------------------
Inventory DB2 [productId, name, description, cat_id]
DB2
Inventory
------------------------------------------------------------------
| productId | name | description | cat_id |
-----------------------------------------------------------------
| 999 | product999 | description text | 236 |
| 1000 | product1000 | description text2 | 237 |
| 1001 | product1001 | description text3 | 237 |
| 2000 | product2000 | description text4 | 456 |
-----------------------------------------------------------------
DB1
product_to_category
---------------------------------
| product_id | category_id |
---------------------------------
| 999 | 236 |
| 1000 | 237 |
| 1001 | 237 |
| 2000 | 456 |
---------------------------------
Я ищу, чтобы скопировать "описание" данные из DB2 и поместить его в «описание» в DB1, предпочтительно используя WHERE cat_id >=237 <=456
Я надеялся использовать идентификатор категории, потому что я могу перемещать продукты и вставлять метаданные одновременно. cat_id
представляет собой набор продуктов, около 200 или с помощью ProductID, но мне нужно будет обновить другие поля отдельно
UPDATE DB1.product_description
SET description = (SELECT description
FROM DB2.Inventory
WHERE `cat_id` =2616);
это дает ошибку # 1064 - У вас ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'SET description = (SELECT description FROM DB2.Inventory WHERE
cat_id =2616)' at line 2
удалил запятую благодаря клубнике;) теперь получите ошибку;
#1242 - Subquery returns more than 1 row
У меня есть 30000 продуктов, перечисленных с описаниями, но необходимо интегрировать еще 2000 продуктов в базу данных, не нарушая продукты, которые имеют данные уже в поле описания.
Я пробовал различные сообщения на этом сайте перед публикацией, но не могу понять, как использовать cat_id для отдельной таблицы. Или даже если это возможно. Если бы кто-то был достаточно любезен, чтобы указать, куда я иду, я был бы благодарен. Я провел последние три дня, пытаясь получить описание поля заполнены, но без радости после просмотра тонны сообщений на форуме
Еще раз спасибо
HTT
Возможный дубликат [MySQL - запрос UPDATE на основе запроса SELECT] (http://stackoverflow.com/questions/1262786/mysql-update-query-based-on-select-query) –
Что такое запятая? – Strawberry
Привет, Джей Спасибо за ваш быстрый ответ. Я просмотрел ссылку выше, прежде чем отправлять сообщения, но я не мог справиться с cat_id. это потому, что я не связал cat_id с category_id. Я попытался использовать productId для WHERE productId = product_id, но получил ошибку первичного ключа – HoldThatThought