我希望我在这里只是一个白痴,但是我有一个截断表的查询,然后选择一些外键的所有可能组合并插入它们来制作个人资料。
我有 2 x 2 x 3 x 4 x 7 键可供选择,其中包含 336个不同组合。
如果我运行此选择,我会得到336行:
SELECT DISTINCT
`contract_agreement_type`.`id`,
`contract_deposit`.`id`,
`contract_length`.`id`,
`contract_maintenance_type`.`id`,
`contract_mileage`.`id`
FROM `contract_agreement_type`,
`contract_deposit`,
`contract_length`,
`contract_maintenance_type`,
`contract_mileage`
哇哇,太棒了!但当我插入时,我最终得到 672 行?!为了检查我的数学是对的,我在5列上添加了一个索引,当我再次运行它时,我得到一个重复的键错误:
INSERT INTO `contract_profile`
(
`contract_agreement_type_id`,
`contract_deposit_id`,
`contract_length_id`,
`contract_maintenance_type_id`,
`contract_mileage_id`
)
SELECT DISTINCT
`contract_agreement_type`.`id`,
`contract_deposit`.`id`,
`contract_length`.`id`,
`contract_maintenance_type`.`id`,
`contract_mileage`.`id`
FROM `contract_agreement_type`,
`contract_deposit`,
`contract_length`,
`contract_maintenance_type`,
`contract_mileage`
# Duplicate entry '1-3-24-1-5' for key 'profile'
所以选择很好,但是插件会以某种方式复制数据 - 我做错了什么?!