Witam.
Nie znam się zbyt dobrze na SQL a chciałbym sobie troszkę ułatwić pracę. Mam w jednej tabeli (np. xx1) kilka kolumn, m.in. ‘user_id’. Rekordy w tej kolumnie się nie powtarzają.
-------------------------------------
--------------XX1------------------
-------------------------------------
user_id | cos tam | cos innego
------------------------------------
1 | 22 | 44
2 | 12 | 54
Według pewnych kryteriów wybieram kilkaset rekordów ‘user_id’.
SELECT `xx1`.`user_id` FROM `xx1` WHERE `cos_tam` =2 AND `cos_tam_innego` <10
Teraz w innej tabeli (np. xx2) też mam kolumnę ‘user_id’ oraz m.in. ‘model_id’. Tutaj rekordy w ‘user_id’ mogą się powtarzać, np. mam wpis user_id = 5 - model_id = 1 i user_id = 5 - model_id = 2.
-------------------------------------
--------------XX2------------------
-------------------------------------
user_id | model_id | cos
------------------------------------
5 | 1 | 6
5 | 2 | 8
Teraz wybieram z tej tabeli tylko wpisy, w których user_id pokrywa się z rekordami wyszukanymi w tabeli xx1.
SELECT * FROM `xx2` WHERE `user_id` IN (
SELECT `xx1`.`user_id` FROM `xx1` WHERE `cos_tam` =2AND `cos_tam_innego` <10
)
Mam nadzieję, że do tej pory jest to zrozumiałe. Teraz co chcę zrobić. Chcę skopiować te rekordy modyfikując jedynie model_id na inna, stałą wartość. Przy pomocy Insert into () values () da się to zrobić, ale nie wiem ja w values dodać w miejscu user_id tylko te rekordy wyszukane powyżej. Proszę o pomoc, albo poddanie nazwy funkcji, dzięki której dam radę takie coś zrobić.