Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: update tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
yalus
witam


mam dwie takie same tabele:

tabela 1:
numer | person

tabela 2:
numer | person

tabela1 zawiera ok 100.000 rekordow, kolumna numer zawiera dane z tabela2.numer (okolo 40.000) a kolumna person zawiera inicjaly osoby

w tabeli2 kolumna person jest pusta


teraz chcialbym zapdejtowac tabele2 w taki sposob aby w tabeli2 w kolumnie person pojawily sie takie same dane co w tabeli1.person nalezace do tego samego numeru

przyklad:

tabela1:

numer | person
1 | a
2 | a
3 | a
4 | a
5 | b
6 | b
7 | b
8 | b
9 | b
0 | c


tabela2:

numer | person
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |


no wlasnie no i co teraz optymalnie i w miare bezbolesnie

ja zrobilem to tak:
pobralem wszystkie rekordy z tabeli1 nalezace do person a (np 1000)

i zalozylem petle na tabele2 ale jest to bardzo czaso chlonne i nie wiem czy skoncze do wieczora
wyglada to tak:
  1. <?php
  2. SQL = "select * from tabela1 where person='a'"
  3.  Set rS = gCnn.Execute(SQL)
  4.  Do Until rS.EOF
  5.  SQL = "update tabela2 set person='a' where mobile_number='" & rS.Fields("numer") & "'"
  6.  Set rS1 = gCnn.Execute(SQL)
  7.  rS.MoveNext
  8. Loop
  9. ?>


nie jest to php ale idea jest taka sama


czy mozna to wykonac w inny sposob?? (bardziej optymalny)
JaRoPHP
Wnioskuję, że chcesz uzupełnić w tabeli2 tylko kolumnę person (w oparciu o kolumnę numer z tabeli1).

Wydaje mi się, że wystarczy sam SQL:
  1. UPDATE tabela2 SET person = (SELECT person FROM tabela1 WHERE tab1.numer = tab2.numer)
yalus
dokładnie guitar.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.