我正在尝试编写一个 SQL 查询,该查询将根据另一个表中的字段复制记录。我正在运行 mySQL 5。
(我知道重复记录表明数据库结构不好,但我没有设计数据库,也无法重做 - 这是一个运行在 wordpress 上的 shopp 电子商务数据库。)
每个具有特定属性的产品都需要一个指向相同数量图片的链接,因此产品需要在表格中为每个图片占一行 - 数据库实际上并不包含图片,仅包含其文件名。 (图片为剪贴画供客户选择)
根据这些记录...
SELECT * FROM `wp_shopp_spec` WHERE name='Can Be Personalised' and content='Yes'
我想做这样的事情..
对于匹配该查询的每条记录,从 wp_shopp_asset 复制记录 5134 - 5139,但更改 ID 使其唯一,并将“parent”列中的单元格设置为表 wp_shopp_spec 中的“product”值。这将意味着为与上述查询匹配的每条记录创建 6 条新记录,所有记录在“parent”中都具有相同的值,但具有唯一的 id,并且每隔一列从原始记录(即记录 5134-5139)复制而来
希望已经足够清楚了 - 非常感谢任何帮助。
最佳答案
听起来您需要交叉连接到您想要的 Assets 值。所以像这样:
Select spec.parent, asset.id as uniqueid, ...
From`wp_shopp_spec` spec
Cross Join (
Select id
From `wp_shopp_asset`
Where Id Between 5134 And 5139
) asset
Where name='Can Be Personalised'
And content='Yes'
关于mysql - SQL查询根据If语句复制记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2733803/