Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Update rekordu gdy rekord=rekord
sanab
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 10.02.2006

Ostrzeżenie: (0%)
-----


Hej,

Chciałbym updatować rekord jeśli inny rekord w tej samej tabeli jest równy innemu rekordowi w innej tabeli.
Próbuje tak ale nie wychodzi:

  1. UPDATE baza.tabela1
  2. SET auto_update = '3'
  3. WHERE baza.tabela1.contact_num = baza.tabela2.nr_st;


Jak ułożyć warunek?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Valdi_B
post
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 30
Dołączył: 19.02.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Sformułuj sprawę konkretniej:
1. Nazwy tabel, lista kolumn.
2. Sposób wiązania między rekordem "do aktualizacji" a "innym w tej samej tabeli".
3. Sposób wiązania między rekordem "innym w tej samej tabeli" a "innym w innej tabeli".

Do tego może jakiś opis, bo tak jak napisałeś, to za dużo trzeba się domyślać, jest za dużo możliwych wariantów.

Co do kojarzenia w stylu "porównanie z innym rekordem w tej samej tabeli", może coś Cię naprowadzi taki przykład:

Mamy tabelę pracowników, z atrybutami (m.in.)
- id (ident. pracownika),
- id_szefa,
- pensja
Chcemy znaleźć pracowników zarabiających więcej od swojego szefa.

SELECT nazw, imie
FROM prac AS t1 JOIN prac AS t2
ON t1.id_szefa = t2.id
WHERE t1.pensja > t2.pensja

Jeżeli to za mało, to napisz coś konkretniej.
Go to the top of the page
+Quote Post
sanab
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 10.02.2006

Ostrzeżenie: (0%)
-----


Sory jeśli wydało się nie jasne smile.gif

Mam tabelę tabela1 w której mam dwie kolumny auto_update i contact_num

tabela1:
Kod
contact_num    auto_update
XY 491-103        1
XY 491-108        3
XY 491-122        3
XY 491-126        1
XY 491-135        3

tabela2 ma tak postać:
Kod
nr_st
XY 491-103
XY 491-108
XY 491-122
XY 491-126
XY 491-135

Chce przyrównać contact_num do nr_st i jeśli występuje taka wartość w nr_st to zmienić pole auto_update na 3
Go to the top of the page
+Quote Post
Valdi_B
post
Post #4





Grupa: Zarejestrowani
Postów: 107
Pomógł: 30
Dołączył: 19.02.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Przepraszam za zwłokę (krótki wyjazd bez dostępu do komputera).
Rozwiązanie jest dość proste:

UPDATE tabela1 SET auto_update = 3
WHERE contact_num IN SELECT nr_st FROM tabela2
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 14:33