Мне нужно создать имена пользователей для файловой базы данных для класса, взяв имена "добровольцев" и создав для него имя пользователя.
У меня есть первое и последнее имя в одной таблице, и я создаю имя пользователя в отдельной таблице.
У меня не было проблем с переносом идентификационного номера из одной таблицы в другую, но у меня возникают проблемы с именами из таблицы, их объединением и копированием на другой.
Мой код, который я использовал (без успеха), выглядит следующим образом:
INSERT INTO Username (IDNumber, username)
- это две переменные в новой таблице
SELECT ID_Number FROM Person
- это работает без проблемы, ID_Number - это имя переменной в таблице Person, из которой я беру это. Я включаю это, поэтому у меня есть ссылка, если мне нужно присоединиться к таблицам в какой-то момент
SELECT CONCAT(FirstName, LastName) FROM Person
; - это то, с чем я действительно сталкиваюсь. Если бы я мог быстрее связаться с моим учителем, я бы спросил, могу ли я иметь еще два столбца для имен в новой таблице и объединить их таким образом, потому что у меня есть ощущение, что это будет проще.
Что я здесь делаю неправильно?
В принципе, я хочу взять первое и последнее имя из первой таблицы и объединить их для вставки в новую таблицу.
Edit: Перечитывая, что я набрал, я решил сделать себя немного яснее: я попробовал IDNumber самостоятельно, и он работал без проблем. Когда я пытаюсь объединить эти три строки, он возвращает ошибку, сообщающую мне проверить синтаксис.
Ну, вы хотите CONCAT(FirstName, ' ', LastName)
иначе вы получите LarryEllison
а не Larry Ellison
в своей новой таблице.
Вы на правильном пути с INSERT... SELECT
. Вы, вероятно, хотите
INSERT INTO UserName (IDNumber, username)
SELECT IDNumber,
CONCAT(FirstName, ' ', LastName) username
FROM Person
Идея состоит в том, чтобы написать SELECT
которая соответствует столбцу оператора INSERT
для столбца. Вы можете протестировать все это неразрушительно, запустив SELECT
без INSERT
и убедившись, что он выглядит правильно.