Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Sortowanie danych z 3 tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
Kalinowcyk
Witam,
mam następujący problem.

Mam sobie 3 tabelki. W każdej z tych tabel jest kolumna typu "data".
Chciałbym wyciągnąć powiedzmy 10 rekordów. Ma to być 10 rekordów na "najnowszą" datą. Jednak te 10 rekordów może pochodzić z tych 3 tabel, czyli trzeba by posortować je wg pola data, ale to pole jest we wszystkich tabelach.

Czy jest jakiś sposób, żeby to zrobić nie korzystając z procedur czy funkcji składowanych?

Mam nadzieję, że w miarę jasno opisałem problem.

Pozdrawiam i z góry dzięki za pomoc.
wookieb
  1. SELECT (SELECT DATA FROM tabela1 UNION
  2. SELECT DATA FROM tabela2 UNION
  3. SELECT DATA FROM tabela3) ORDER BY DATA

Nie daje pewnosci ze zadziała ale chyba coś w ten deseń powinno być.
Kalinowcyk
ok, zapytanie takie:

  1. SELECT data_dodania
  2. FROM tabela1 UNION SELECT data_dodania
  3. FROM tabela2 UNION SELECT data_dodania
  4. FROM tabela3 ORDER BY data_dodania DESC LIMIT 0, 10

ładnie pobiera ostatnie 10 dat z tych trzech tabel. Ale tutaj rodzi się następny problem.
Skąd mam wiedzieć, która z tych dat jest z której tabeli, a co za tym idzie, jak pobrać z odpowiednich rekordów pozostałe dane?
osiris
  1. (SELECT data_dodania, 'tabela1' AS nazwa_tabeli
  2. FROM tabela1) UNION
  3. (SELECT data_dodania, 'tabela2' AS nazwa_tabeli
  4. FROM tabela2) UNION
  5. (SELECT data_dodania, 'tabela3' AS nazwa_tabeli
  6. FROM tabela3) ORDER BY data_dodania DESC LIMIT 0, 10
Kalinowcyk
Dzięki za pomoc, działa jak należy smile.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.