使用内部联接插入查询

时间:2013-07-16 01:08:43

标签: mysql

我想让我的插入查询具有内部联接到用户的数据表。

表格的例子如下:

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中是否可行?

1 个答案:

答案 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;