0

我希望我在这里只是个白痴,但是我有一个查询会截断表,然后选择一些外键的所有可能组合并将它们插入以制作配置文件。

我有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'

所以选择很好,但是插入以某种方式复制了数据 - 我做错了什么?!

4

0 回答 0