我正在尝试编写一个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/

10-12 07:18
查看更多