我希望我在这里只是个白痴,但是我有一个查询会截断表,然后选择一些外键的所有可能组合并将它们插入以制作配置文件。
我有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'
所以选择很好,但是插入以某种方式复制了数据 - 我做错了什么?!