Если вы хотите вставить новый продукт, но вы знаете только category_name
, но не category_id
, тогда мы попробуем сделать INSERT INTO ... SELECT
:
INSERT INTO table1 (category, product)
SELECT category_id, 'new product'
FROM table2
WHERE category_name = 'some category';
Мне кажется, что это плохой дизайн по ряду причин. Во-первых, предположительно, ваше приложение (например, PHP) будет иметь дело с category_id
под капотом, , а не с category_name
. Поэтому в идеале вам не нужно запрашивать table2
, чтобы эта вставка работала. Другая проблема заключается в том, что две или более категорий могут иметь одно и то же имя (но различное category_id
). Всегда лучше работать напрямую с первичным ключом, если это возможно.