Makary155 Opublikowano 6 Kwietnia 2012 Udostępnij Opublikowano 6 Kwietnia 2012 Mam 2 tabele: messages i users. Tabela messages ma pola: id, owner, subject i body. Do tej tabeli chcę dodać wiele rekordów gdzie pola subject i body mają jakąś tam określoną wartość, natomiast wartość pól owner pobierana byłaby po kolei z pola id z tabeli users. Czyli jeśli w tabeli users 5 rekordów o id 1,2,3,4,5 to w tabeli messages utworzyły by się 5 rekordów: owner: 1 subject: "blah" message:"omg" owner: 2 subject: "blah" message:"omg" owner: 3 subject: "blah" message:"omg" owner: 4 subject: "blah" message:"omg" owner: 5 subject: "blah" message:"omg" Czy da się to zrobić jednym poleceniem INSERT ? Zależy mi o jak najwydajniejszej instrukcji gdyż planuję operować na dużej ilości rekordów. Pobieranie po kolei SELECTem i użycie INSERTa po kolei w php w pętli while jest za wolne i szukam innego rozwiązania. Czytałem o INSERT...SELECT ale to działa tylko jeżeli wstawia się tylko wynik selecta jesli dobrze to zrozumiałem, a ja mam do wstawienia oprócz tego inne rzeczy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 6 Kwietnia 2012 Administratorzy Udostępnij Opublikowano 6 Kwietnia 2012 W phpMyAdminie jak robisz eksport danych, to jest opcja zrobienia tego jednym insertem, podpatrz tam. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 6 Kwietnia 2012 Autor Udostępnij Opublikowano 6 Kwietnia 2012 Wykminiłem takie coś: INSERT INTO messages (owner, subject, body) SELECT id, "lol", "omg" FROM users Działa perfekcyjnie, chociaż nie wiem dlaczego. W znalezionym na Stack Overflow podobnym problemie polecono użycie UNION ale w moim przypadku nie działa, zwraca błąd "Doesn't match number of columns in row 1" http://stackoverflow.com/questions/5366814...ws-using-select SELECT "omglol" from users zwraca tyle razy napis omglol ile jest rekordów w tabeli, ciekawe. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się