2013-07-16 10 views
10

Ich möchte meine Einfügeabfrage machen, die einen inneren Join mit der Datentabelle eines Benutzers hat.Abfrage mit einem inneren Join einfügen

Das Beispiel der Tabellen ist wie folgt:

users:

uid | name 

users_data:

id | data_id | uid | other fields 

data_stocks

id | data_id | quantity 

so im in data_stocks einzufügen versuchen, sie beziehen sich nur die uid von users zu kennen.

Kinda von wie folgt aus:

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

Ist das möglich in mySQL?

Antwort

18

Sie wollen die insert ... select Form der Anweisung verwenden:

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

Wenn Sie dies nur für einen Benutzer tun, könnte es so aussehen:

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