如何在 MySQL (5.5) 中在两个 SQL 查询之间执行 MINUS。我不擅长 SQL。
我想要的是只获取第二个查询中不存在的键。我正在尝试使用 LEFT JOIN来完成此操作。我可以使用这样的东西:
     SELECT  target.component_id, target.asset_code FROM 
         (SELECT comp_files.* FROM stageSchema.components comp
             INNER JOIN productionSchema.component_files comp_files
             ON comp.id = comp_files.component_id) target
     LEFT JOIN 
         (SELECT comp_files.* FROM stageSchema.components comp
             INNER JOIN stageSchema.component_files comp_files
             ON comp.id = comp_files.component_id) stage
     ON target.component_id = stage.component_id
     WHERE stage.component_id IS NULL;
我知道上面的查询不正确。任何想法如何做到这一点?
“ component_files ”表的结构是:
    CREATE TABLE `component_files` (
     `component_id` int(11) NOT NULL,
     `asset_code` varchar(3) NOT NULL,
     `file_name` varchar(40) NOT NULL,
     `file_size` int(11) NOT NULL,
     `video_size` varchar(10) DEFAULT NULL,
     `bit_rate` varchar(10) NOT NULL,
     `last_updated_date` datetime NOT NULL,
     UNIQUE KEY `cf_uk` (`component_id`,`asset_code`) USING BTREE,
     CONSTRAINT `cf_comp_fk` FOREIGN KEY (`component_id`) REFERENCES `components` (`id`)
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
这是 EXPLAIN 的结果
没有 WHERE 子句:

使用 WHERE 子句:
