UPDATE dla kilku id

Majcon
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Złoczew
  • Postów: 85
0

Witam chce zrobić UPDATE w jednej tabeli gdzie id będzie równe idom z drugiej tabeli
UPDATE tab1 SET pole = 1 WHERE pol = (SELECT id FROM tab2 WHERE pol2 <=10);
Tak nie działa bo sprawdzałem
#1242 - Subquery returns more than 1 row
UPDATE tab1 SET pole = 1 WHERE pol IN (SELECT id FROM tab2 WHERE pol2 <=10)

tylko zapytanie wykonuje się 8s może da się to przyśpieszyć ?

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

WHERE pol IN (SELECT ...

Majcon
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Złoczew
  • Postów: 85
0

No to właśnie tak zrobiłem ale 8s wykonuje się zapytanie

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

A, edytowałeś posta, a ja nie zauważyłem.

Dobra, to pokaż jakiś plan wykonania zapytania. Ile masz rekordów? Masz założony indeks na pol2?

Majcon
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Złoczew
  • Postów: 85
0

Maksymalnie 3000 :)

Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
0
Kopiuj
UPDATE tab1 JOIN tab2 ON tab1.pol=tab2.id SET tab1.pole = 1 WHERE tab2.pol2 <=10
Majcon
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Złoczew
  • Postów: 85
0

( Wykonanie zapytania trwało 15.0691 sekund(y) )

Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
0

Brak indeksów na pola tab1.pol i tab2.id

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.