2013-07-16 17 views
10

Chcę utworzyć kwerendę wstawiania, która ma wewnętrzne sprzężenie z tabelą danych użytkownika.Wstawianie zapytania z łączeniem wewnętrznym

Przykład tabelach jest tak:

users:

uid | name 

users_data:

id | data_id | uid | other fields 

data_stocks

id | data_id | quantity 

Więc im próbuje wstawić do data_stocks dotyczącej tylko znając uid od users.

Kinda od tak:

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

Jest to możliwe w MySQL?

Odpowiedz

18

Chcesz skorzystać z formularza insert ... select oświadczenia:

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

Jeśli robisz to tylko dla jednego użytkownika, może to wyglądać mniej więcej tak:

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