Я создал две таблицы MySQL. Один из них импортирует CSV, называемый staging_part_type
, и тот, где фактические part_type
записи должны быть в конечном итоге вызваны part_type
, за вычетом любых записей, которые уже присутствуют. product_code
. Обе таблицы идентичны, состоящие из столбцов id, in_use, default_name, product_code
.MySQL выбрать из одной таблицы, вставить в другую
Есть ли определенное имя для выполнения чего-то подобного? Я не нашел никаких полных руководств по этому поводу, только кучу отдельных, и я не могу собрать их в рабочий запрос, поскольку мне не хватает опыта в этой теме, и после недели чтения я все еще едва понимаю, что я 'я делаю.
Что-то вроде этого?
INSERT IGNORE INTO part_type (in_use, default_name, product_code)
SELECT (in_use, default_name, product_code)
FROM staging_part_type
WHERE part_type.product_code IS NOT staging_part_type.product_code;
Код для создания таблицы, обе таблицы идентичны, за исключением имени.
CREATE TABLE IF NOT EXISTS `part_type` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`in_use` tinyint(1) NOT NULL,
`default_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`product_code` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=580 ;
Может кто-нибудь объяснить мне, как это сделать или указать мне на ресурс на эту тему?
Очень элегантно и точно, что мне нужно для этой ситуации, поскольку файл действительно очень маленький. В настоящее время я пытаюсь проделать свой путь через «Основы систем управления базами данных» Гилленсона. Это много, но я обязательно посмотрю, как Join отличается от Subquery. –