#mysql #sql
Вопрос:
Я пытаюсь вставить строку, используя a Foreign Key
из другой таблицы, но я не уверен, как это сделать.
Мой вопрос таков
INSERT INTO customers(
Customer_Name,
Address,
Postal_Code,
Phone,
Create_Date,
Created_By,
Last_Update,
Last_Updated_By,
Division_ID //This is the foreign key. It's the Primary key for my first_level_divisions Table
) VALUES (
'Alex',
'123 Sesame Street',
'12345',
'123-456-7891',
'1986-10-22',
'Alex',
'1986-10-22 09-30-14',
'Alex',
5 //Foreign key I want to insert
)
Другим запросом было бы
SELECT Division_ID FROM first_level_divisions WHERE division = 'Alberta'
Как бы я объединил эти два запроса?
Я попытался добавить его в качестве последнего значения, но это не совсем работает
) VALUES (
'Alex',
'123 Sesame Street',
'12345',
'123-456-7891',
'1986-10-22',
'Alex',
'1986-10-22 09-30-14',
'Alex',
SELECT Division_ID FROM first_level_divisions WHERE division = 'Alberta'
)
Комментарии:
1. Скобки нужны, например
(SELECT... 'Alberta')
.2. Или сделать
INSERT INTO t SELECT 'Alex', ..., Division_ID FROM first_level_divisions WHERE division = 'Alberta'
.3. А, понял, спасибо!
4. @jarlh: Ваши комментарии были бы хорошим ответом 🙂
Ответ №1:
Для выбора нужны круглые скобки:
INSERT INTO customers(
...
Division_ID //This is the foreign key. It's the Primary key for my first_level_divisions Table
) VALUES (
'Alex',
... ,
(SELECT Division_ID FROM first_level_divisions WHERE division = 'Alberta')
)
Или сделайте ВЫБОР с помощью ВСТАВКИ:
INSERT INTO customers(
Customer_Name,
Address,
Postal_Code,
Phone,
Create_Date,
Created_By,
Last_Update,
Last_Updated_By,
Division_ID //This is the foreign key. It's the Primary key for my first_level_divisions Table
)
SELECT
'Alex',
'123 Sesame Street',
'12345',
'123-456-7891',
'1986-10-22',
'Alex',
'1986-10-22 09-30-14',
'Alex',
Division_ID
FROM first_level_divisions
WHERE division = 'Alberta'