2012-05-31 2 views
0

Возможно ли вставить данные с определенным идентификатором, который неизвестен, пока ссылка на этот идентификатор известна?Вставка MySQL с неизвестными ID

Пример:

Я получил тип автомобиля, и я знаю имени, но я не знаю, идентификатор этого.

В базе данных он известен как: FooBarCar 13

Теперь я хочу, чтобы вставить FooBarCar в некоторой справочной таблице, но я не знаю, идентификатор еще. Можно ли записать это в один запрос/подзапрос или мне нужно выбрать это в отдельном запросе? Если это возможно с одним запросом/подзапросом, это можно сделать с помощью нескольких неизвестных «автомобилей»?

благодарит заранее!

ответ

1
INSERT INTO table_a(`Name`,`cID`,`another_field`) 
VALUES('Something', 
(SELECT id FROM table_b tb WHERE tb.cat = '5'), 
'somethingelse') 

Источник: http://www.webdeveloper.com/forum/showthread.php?t=76538

+0

Как это сделать с несколькими неизвестными/строками, которые нужно вставить? – John

+0

этот оператор в строке – punny

1

Вы можете использовать один запрос с INSERT INTO

INSERT INTO CARTBL (carname, cartype) 
VALUES (
    'mycar', 
    (select cartypeid from CARTYPETBL where typename='cartype') 
); 
0
INSERT INTO table_ref (id, value) 
SELECT id, 'give_value' 
FROM table_car 
WHERE type = 'given_type' 

Это может обрабатывать несколько вставок как хорошо в одном запросе.

+0

Не могли бы вы привести пример с несколькими версиями? И я предполагаю, что 'give_value' заменяется результатом типа = 'given_type'? – John

+0

'give_value' - это в основном строка, которая будет вставлена ​​в столбец 'value'. Я делаю вставки из 'table_car' путем фильтрации типа с 'given_type'. Он очень похож на обычный «SELECT». –

Смежные вопросы