2013-07-16 17 views
10

Voglio rendere la mia query di inserimento che ha un inner join alla tabella di dati di un utente.Inserisci query con un join interno

L'esempio delle tabelle è come questo:

users:

uid | name 

users_data:

id | data_id | uid | other fields 

data_stocks

id | data_id | quantity 

Così nel tentativo di inserire in data_stocks relativo al solo conoscendo il uid da users.

Kinda di simile a questo:

INSERT INTO data_stocks (data_id,quantity) 
VALUES (' need to join it some how ','$quantity'); 

Questo è possibile in MySQL?

risposta

18

si desidera utilizzare la insert ... select forma della dichiarazione:

INSERT INTO data_stocks (data_id,quantity) 
    select ud.data_id, $quantity 
    from users u join 
     users_data ud 
     on u.uid = ud.uid; 

Se si sta facendo questo per un solo utente, potrebbe apparire più simile a questo:

INSERT INTO data_stocks (data_id,quantity) 
    select ud.data_id, $quantity 
    from users_data ud 
    where ud.uid = $uid;