• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Podzapytania w SQL

0 głosów
646 wizyt
pytanie zadane 8 maja 2022 w SQL, bazy danych przez Blds Użytkownik (830 p.)

Czy można połączyć zapytanie SELECT z UPDATE?

Chciałbym zsumować sprzedaż pracowników po nazwisku i produkcie i dla osoby z najwyzszym wynikiem dopisać do nazwiska Lider. Czy ponizsze zapytanie składniowo jest ok? Można to zamknąć w SELECTcie?

UPDATE pracownicy SET nazwisko=nazwisko+"lider" GROUP BY nazwisko, produkt ORDER BY sum(saldo_w_pln) DESC LIMIT 1

 

1 odpowiedź

+2 głosów
odpowiedź 8 maja 2022 przez Wiciorny Ekspert (283,300 p.)

To co napisałeś jest awykonalne, u Ciebie nie ma selekta, więc generalnie nie możesz updateować czegoś jednocześnie to grupując, i sortując. Natomiast mozesz dane zupdateować jeśli grupowanie i sortowanie zamkniesz dla selekta w danych. i będzie to równe temu na co wskazuje kolumna w update czyli u Ciebie równe nazwisku. 
Można ale tylko jeśli UPDATE jest na bazie selecta a nie odwrotnie. 

Przykład: 
 

UPDATE Per
SET 
Per.PersonCityName=Addr.City, 
Per.PersonPostCode=Addr.PostCode
FROM Persons Per
INNER JOIN
AddressList Addr
ON Per.PersonId = Addr.PersonId

lub
 

UPDATE tableA SET validation_check = 
    (SELECT if(start_DTS > end_DTS, 'VALID', '') AS validation_check
        FROM tableA
        INNER JOIN tableB ON name_A = name_B
        WHERE id_A = tableA.id_A)

 

komentarz 13 maja 2022 przez Blds Użytkownik (830 p.)
A jak można updatować napis w rekordzie tak żęby zachować jego oryginalną wartość i dodać jakiś napis?
komentarz 13 maja 2022 przez Wiciorny Ekspert (283,300 p.)

zastosować CONCAT np. nie jest to wydajne, ale można albo replace zrobić i nadpisac stara wartośc z wartością "nową", albo dołączyć 

UPDATE tabela SET twoj_rekord = CONCAT(twoj_rekord, 'nowe_slowo') WHERE id = jakies_id;

 

Podobne pytania

0 głosów
1 odpowiedź 1,606 wizyt
pytanie zadane 11 listopada 2017 w SQL, bazy danych przez Apocalipto Nowicjusz (120 p.)
+1 głos
1 odpowiedź 843 wizyt
pytanie zadane 20 listopada 2016 w SQL, bazy danych przez MlodyJavaS Użytkownik (500 p.)
+1 głos
0 odpowiedzi 309 wizyt
pytanie zadane 3 sierpnia 2017 w SQL, bazy danych przez raf123 Nowicjusz (130 p.)

93,742 zapytań

142,680 odpowiedzi

323,299 komentarzy

63,328 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...