gpt4 book ai didi

php - 使用来自第三个表的共享 id 使用来自另一个表的数据更新具有空列的表

转载 作者:行者123 更新时间:2023-11-30 22:42:42 25 4
gpt4 key购买 nike

大家好,新手需要指出正确的方向。

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 in DB2 .Inventory

  DB1  product_description

------------------------------------------------------
| product_id | name | description |
-------------------------------------------------------
| 999 | product999 | description text |
| 1000 | product1000 | |
| 1001 | product1001 | |
| 2000 | product2000 | |
-------------------------------------------------------

DB2 Inventory [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

我希望使用类别 ID,因为我可以移动产品并同时插入元数据。 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

我列出了 30,000 个带有描述的产品,但需要将另外 2000 个产品集成到数据库中,而不影响描述字段中已有数据的产品。

在发帖之前,我已经在这个网站上尝试过各种帖子,但无法弄清楚如何使用单独表格中的 cat_id。或者即使可能。如果有人好心指出我哪里出错了,我将不胜感激。在过去的三天里,我一直在尝试填写描述字段,但在查看了论坛上的大量帖子后,我并不高兴

再次感谢

HTT

最佳答案

请在您的测试环境中尝试以下操作:

UPDATE 
DB1.product_description
INNER JOIN DB2.Inventory
ON DB2.Inventory.productId = DB1.product_description.product_id
SET
DB1.product_description.description = DB2.Inventory.description
WHERE
DB2.Inventory.cat_id = 2616;

/*
or for the range of records:
WHERE (DB2.Inventory.cat_id >= 237 AND DB2.Inventory.cat_id <= 456)
*/

我认为@Jay Blanchard 先生指出了正确的方向。

希望至少能有所帮助。

关于php - 使用来自第三个表的共享 id 使用来自另一个表的数据更新具有空列的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30666710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com