У меня есть три таблицы: ввод, результаты, ошибки.
ввод table
:
'input', 'CREATE TABLE `input` (\n `name` varchar(500) NOT NULL,\n PRIMARY KEY (`name`),\n UNIQUE KEY `domain_UNIQUE` (`name`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1'
Таблица results
:
'results', 'CREATE TABLE `results` (\n `name` varchar(1000) NOT NULL,\n `no` varchar(500) DEFAULT NULL,\n `description` varchar(500) DEFAULT NULL,\n `version` varchar(500) DEFAULT NULL,\n `ext` longtext,\n PRIMARY KEY (`name`),\n UNIQUE KEY `domain_UNIQUE` (`name`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1'
errors
таблица:
'erros', 'CREATE TABLE `erros` (\n `error` varchar(500) DEFAULT NULL,\n `name` varchar(1000) NOT NULL,\n `code` longtext,\n PRIMARY KEY (`name`),\n UNIQUE KEY `ip_UNIQUE` (`name`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1'
Я хочу запросить поле name
, если оно существует в таблице input
, но не существует в results
и отсутствует в таблицах errors
.
Я пытался построить запрос, используя NOT IN
, но он длится вечно, а затем происходит сбой в MySQL.Обратите внимание, что поле name
в таблицах errors
и results
всегда представляет собой name
, существующее в input
, но с фиксированным префиксом xxx
.
Вот моя попытка:
выберите input
. name
из myscheme
. input
, myscheme
. results
, myscheme
. erros
гдеconcat ('xxx', input
. name
) не включен (выберите results
. name
из myscheme
. results
) и concat ('xxx', input
. name
) нетin (выберите erros
. name
из myscheme
. erros
);
Не могли бы вы помочь мне запросить поле name
, если оно существует в input
, но не в results
и не в errors
.