使用内部联接插入查询

Sir*_*Sir 11 mysql

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

表的例子是这样的:

users:

uid | name 
Run Code Online (Sandbox Code Playgroud)

users_data:

id | data_id | uid | other fields
Run Code Online (Sandbox Code Playgroud)

data_stocks

id | data_id | quantity
Run Code Online (Sandbox Code Playgroud)

所以我试图插入data_stocks只涉及知道uidusers.

有点像这样:

INSERT INTO data_stocks (data_id,quantity)
VALUES (' need to join it some how ','$quantity');
Run Code Online (Sandbox Code Playgroud)

这在mySQL中是否可行?

Gor*_*off 20

您想使用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;
Run Code Online (Sandbox Code Playgroud)

如果您只为一个用户执行此操作,它可能看起来更像这样:

INSERT INTO data_stocks (data_id,quantity)
    select ud.data_id, $quantity
    from users_data ud
    where ud.uid = $uid;
Run Code Online (Sandbox Code Playgroud)