我想让我的插入查询具有内部联接到用户的数据表。
表格的例子如下:
users:
uid | name
users_data:
id | data_id | uid | other fields
data_stocks
id | data_id | quantity
因此我尝试插入data_stocks
仅与uid
中的users
相关。
有点像这样:
INSERT INTO data_stocks (data_id,quantity)
VALUES (' need to join it some how ','$quantity');
这在mySQL中是否可行?
答案 0 :(得分:18)
您想使用声明的insert ... select
形式:
INSERT INTO data_stocks (data_id,quantity)
select ud.data_id, $quantity
from users u join
users_data ud
on u.uid = ud.uid;
如果您只为一个用户执行此操作,则可能看起来更像这样:
INSERT INTO data_stocks (data_id,quantity)
select ud.data_id, $quantity
from users_data ud
where ud.uid = $uid;