Dodaję sobie listę użytkowników z adresami email. W bazie przechowuję oddzielnie adresy email (z innymi danymi), a oddzielnie dane danego użytkownika (wraz z innymi danymi). Struktura w uproszczeniu wygląda tak:
USR (ID, NAME ....)
USR_MAILS (USR_ID, EMAIL ....) (USR_ID wskazuje na tablę USR pole ID

Teraz chciałbym aby dodawanie użytkowników przebiegało w możliwie jak najmniejszej liczbie zapytań. Co do samego INSERT dla USR to sprawa jest prosta (w uproszczeniu):
foreach ($odbiorcy as $odbiorca){ $query_usr = ",('".$odbiorca['name']."')"; }
Natomiast dodawania maili do USR_MAILS w jednym zapytaniu już nie potrafię stworzyć.
Mam 2 rozwiązania:
1. Iterując po odbiorcach mogę tworzyć INSERT ... SELECT dla USR_MAILS i podawać w parametrze nazwę
2. Pobierać lastInsertId, i dodawać do drugiego zapytania (jednak wtedy pierwsze zapytanie musiałoby być oddzielnie dla każdego wpisu)
Macie może pomysły na jakieś inne rozwiązanie? Jest jakaś opcja INSERT wraz z JOIN?
Bo jak na razie mam 1 zapytanie dla USR i n zapytań dla USR_MAILS lub n zapytań dla USR i jedno zapytanie dla USR_MAILS.