Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Update - dane z 2 tabel do 1 tabeli
Forum PHP.pl > Forum > Przedszkole
@rtur
Mam 3 tabele:
  1. utwory:
  2. utwor_id(int)(autoncrement)
  3. tytul(varchar(256))
  4. data_debiutu(datetime)
  5.  
  6. utwory_audycje:
  7. ua_id(int)(autoncrement)
  8. utwor_id(int)
  9. audycja_id(int)
  10.  
  11. audycje_detale:
  12. audycja_id(int)(autoncrement)
  13. prowadzacy_id(tinyint)
  14. audycja_data(datetime)

Potrzebuje zrobić update dla 6000 rekordów w tabeli utwory, żeby dla każdego utworu zaktualizować pole utwory.data_debiutu, za datę debiutu biorąc datę pierwszej audycji (audycje_detale.audycja_data) w której był grany każdy utwór. Poproszę o ile to możliwe o pomoc w złożeniu zapytania, ewentualnie o wskazówki jak takie zapytanie złożyć.
mmmmmmm
  1. UPDATE utwory JOIN (SELECT utwor_id, Min(audycja_data) min_data FROM audycje_detale ad JOIN audycje_utwory au ON au.audycja_id=ad.audycja_id GROUP BY 1) x ON x.utwor_id=utwory.utwor_id SET utwory.data_debiutu=x.min_date
@rtur
dzięki po małych przeróbkach działa smile.gif

to jeszcze podpytam o taki myk

w tabeli utwory mam pola

  1. utwory:
  2. utwor_id(int)(autoincrement)
  3. tytul(varchar(256))
  4. wykonawca_id(int)
  5. data_debiutu(datetime)


dodatkowo są tabele wykonawcy i utwory_audycje:

  1. wykonawcy:
  2. wykonawca_id(int)(autoincrement)
  3. wykonawca(varchar(256))
  4.  
  5. utwory_audycje
  6. ua_id(int)(autoincrement)
  7. utwor_id(int)
  8. audycja_id(int)


W jaki sposób dodać id utworu do utwory_audycje pobierając jego id z tabeli utwory przy where = utwory.tytul=określony_tytuł and wykonawca=okreslony_wykonawca

W tej chwili robię to tak że mam dodane w tabeli utwory pole typu varchar wykonawca w którym trzymam nazwę wykonawcy utworu, ale wolałbym mieć w w tabeli utwory tylko id_wykonawcy i nazwę po id_wykonawcy powiązanego z utworem w tabeli utwory pobierać z tabeli wykonawcy

W tej chwili insert realizuje mi takie zapytanie:
  1. INSERT INTO utwory_audycje (utwor_id,audycja_id) (SELECT utwor_id,'1', FROM utwory WHERE tytul='tytul utworu' AND wykonawca='wykonawca utworu');


Przepraszam że odkopuję temat ale nie potrafię sobie poradzić ze złożeniem zapytania aktualizującego dane z jednej tabeli do drugiej. Siedzę nad tym od paru godzin i nic mi nie wychodzi.

Mam 2 tabele:
  1. playlista:
  2. id(int)(autoincrement)
  3. czas(datetime)
  4. id_utworu(int)
  5. tytul(varchar)

  1. utwory:
  2. utwor_id(int)(autoincrement)
  3. tytul(varchar)

W jaki sposób jednym poleceniem zaktualizować całą tabelę playlista w której mam 3000 różnych tytułów w 15000 rekordów, wypełniając jej pole playlista.id_utworu danymi z tabeli (pola) utwory.utwor_id?
W tabeli utwory jest tytuł utworu, taki sam tytuł znajduje się w tabeli playlista, chodzi o to aby pobrać id utworu z tabeli utwory, na podstawie tytułu z tabeli 'playlista' i wstawić odpowiedni utwor_id odpowiadający tytułowi utworu do tabeli (pola) playlista.id_utworu. Po zaktualizowaniu będę chciał usunąć pole playlista.tytul
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.