Ваш вопрос не совсем имеет смысла. Похоже, вы хотите вставить в одну таблицу (Products
), а одно из полей также находится в другой таблице (User.username
). Откуда берутся остальные данные для Products
? Вы не можете просто вставить имя пользователя напрямую?
Insert into products (name, price, username) values (?, ?, ?)
Используйте любой механизм, который вы хотите передать в данные этому оператору SQL.
Если, однако, у вас на самом деле есть третья таблица, скажем, 'Prod_for_sale
', и вы хотите вставить в эту таблицу набор данных как из Users
, так и Products
, вы можете сделать что-то вроде этого (как предложено Риком Дж, но в этом примере две таблицы):
insert into products for sale (username, user_country, product_name, product_price)
select u.username, u.country, p.name, p.price
from products p, users u
where p.id = ?
and u.username = ?
Затем вы можете скопировать любые данные из этих таблиц в таблицу назначения.
Однако совет: вы должны использовать идентификатор пользователя вместо имени пользователя для идентификации данных пользователя в базе данных. Это позволит вам позже изменить политику имен пользователей или обновить имена пользователей и т. Д. Обычно старайтесь указывать все номера идентификаторов, и вы избавите себя от хлопот в будущем.