У меня есть SourceTable вроде:
ColumnA ColumnB ColumnC ...
1 a apple
2 b ball
3 c car
4 a apple
5 p pizza
ColumnB и ColumnC имеют повторяющиеся значения.
Мой код:
INSERT INTO TargetTable
SELECT 'Bob', ColumnB, ColumnC, now(), ... FROM SourceTable
WHERE ColumnB = 'a';
Мне просто нужно ввести одно значение в TargetTable. Результат должен выглядеть примерно так:
Bob a apple currentTime ...
Проблема заключается в том, что каждая повторяющаяся запись вводится в TargetTable.
Обновлено: кстати, a в WHERE ColumnB = 'a'; динамический. Он меняется в зависимости от взаимодействия с пользователем.






Этого сценария часто избегают, разбивая столбцы B и C в родительскую таблицу с уникальным ключом в столбцах B и C. Затем используйте столбец внешнего ключа в SourceTable для ссылки на родительскую таблицу.
Что касается вашего оператора INSERT, столбцы B и C будут ссылками на родительскую таблицу, где гарантировано, что у вас будет уникальное значение столбцов B и C, что позволит избежать ошибки повторяющейся записи.
См. https://en.wikipedia.org/wiki/Database_normalization относительно уменьшения избыточности данных, например, повторяющиеся значения столбцов B и C (a, apple) в SourceTable.
Вы можете использовать SELECT DISTINCT
INSERT INTO TargetTable
SELECT 'Bob', ColumnB, ColumnC, now(), ... FROM (SELECT DISTINCT ColumnB,
ColumnC from SourceTable) derived_table
WHERE ColumnB = 'a';
Не нужно извиняться за искренние вопросы. производная_таблица - это псевдоним для таблицы, полученной в результате подзапроса (SELECT DISTINCT ColumnB, ColumnC from SourceTable).
Мне нужно создать производную_таблицу? Какой еще код связан с производной_таблицей?
Вам не нужно создавать производную_таблицу отдельно от оператора INSERT, и вы никогда не «увидите» ее во время выполнения оператора. Если вы хотите увидеть, как выглядит таблица, в целях отладки, попробуйте запустить отдельный запрос select ... Для справки по производным таблицам MySQL: dev.mysql.com/doc/refman/8.0/en/dehibited-tables.html
У меня была другая проблема внутри моего запроса, мешающая вашему успешному выполнению .. Он работает! Я оценил вашу помощь!
Извините за интересный вопрос, но как выглядит производная_таблица?