我正在尝试编写一个SQL查询,该查询将根据另一个表中的字段重复记录。我正在运行mySQL 5。
(我知道重复的记录表明数据库结构不好,但是我没有设计数据库,也无法重做全部-这是一个在wordpress上运行的shopp电子商务数据库。)
每个具有特定属性的产品都需要链接到相同的几张图像,因此该产品在表中的每张图像都需要一行-数据库实际上并不包含该图像,而仅包含其文件名。 (图像是剪贴画,供客户选择)
根据这些记录...
SELECT * FROM `wp_shopp_spec` WHERE name='Can Be Personalised' and content='Yes'
我想做这样的事情。
对于与该查询匹配的每个记录,从wp_shopp_asset复制记录5134-5139,但更改ID以使其唯一,并在表wp_shopp_spec中将“ parent”列中的单元格设置为“ product”的值。这意味着将为与上述查询匹配的每条记录创建6条新记录,所有记录均在“父”中具有相同的值,但具有唯一的ID,并且每隔一列从原始记录中复制一次(即记录5134-5139)
希望这很清楚-任何帮助将不胜感激。
最佳答案
听起来您需要交叉联接到所需的资产值。所以像这样:
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/