Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Sortowanie danych z 3 tabel
Kalinowcyk
post
Post #1





Grupa: Zarejestrowani
Postów: 67
Pomógł: 4
Dołączył: 23.09.2008

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


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.


--------------------
Notatnik programisty
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  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ć.


--------------------
Go to the top of the page
+Quote Post
Kalinowcyk
post
Post #3





Grupa: Zarejestrowani
Postów: 67
Pomógł: 4
Dołączył: 23.09.2008

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


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?


--------------------
Notatnik programisty
Go to the top of the page
+Quote Post
osiris
post
Post #4





Grupa: Zarejestrowani
Postów: 121
Pomógł: 15
Dołączył: 19.07.2007

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


  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
Go to the top of the page
+Quote Post
Kalinowcyk
post
Post #5





Grupa: Zarejestrowani
Postów: 67
Pomógł: 4
Dołączył: 23.09.2008

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


Dzięki za pomoc, działa jak należy smile.gif


--------------------
Notatnik programisty
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: 20.08.2025 - 06:05