Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobieranie danych z dwóch różnych tabel MySQL., Sednem jest pobranie danych, które zostały ostatnio dodane.
RABP
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.08.2012

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


Witam,

Takia oto sprawa:

Mam dwie tabele MySQL.

Oto struktura 1 tabeli:

Nazwa tabeli: opowiadania
Pola tabeli: id_opowiadania, tytul_opowiadania, tresc_opowiadania, url_opowiadania, data_utworzenia

Struktura tabeli 2:

Nazwa tabeli: produkty
Pola tabeli: id_produktu, nazwa_produktu, opis_produktu, url_produktu, data_utworzenia

Pytanie brzmi:

W jaki sposób pobrać ostatnio dodany rekord z tych tabel?
Chodzi o to, że jeśli ostatnim rekordem był rekord w tabeli: opowiadania, to wtedy pobrane zostaną właśnie te dane (i naturalnie na odwrót, gdyby ostatnio dodanym rekordem byłby rekord z tabeli: produkty).

Dzięki za podpowiedzi, bo jakoś mam już zmęczony umysł i nic mi nie przychodzi do głowy.

Ten post edytował RABP 17.02.2013, 18:55:30


--------------------
Strony www i szablony Allegro / Białystok
Jeżeli uważasz, że Tobie pomogłem, kliknij: POMÓGŁ. Z góry dziękuję!
Go to the top of the page
+Quote Post
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Złącz te tabele i posortuj wg data_utworzenia od najnowszej z LIMIT 1
Ewentualnie pobierz z dwóch tabel dwa ostatnie rekordy i porównuj która data nowsza.

Nie wiem co będzie szybsze/wydajniejsze.
Go to the top of the page
+Quote Post
RABP
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.08.2012

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


Właśnie próbuje je na różne sposoby złączyć i nie widzę gdzie jest błąd.
Wolałbym uniknąć - jeśli się da - porównywania daty_utworzenia, bo jakieś wydaje mi się to nie estetyczne (chyba, że takie rozwiązanie jest najbardziej wydajne).

To, co do tej pory zrobiłem, to min.

  1.  
  2. $pobierz_dane = "SELECT * FROM (SELECT tytul_opowiadania, url_opowiadania, tresc_opowiadania FROM opowiadania) UNION ALL (SELECT nazwa_produktu, opis produktu, url_produktu FROM produkty) AS tabela ORDER BY data_utworzenia DESC LIMIT 1";
  3.  
  4. $pobrane_dane = mysql_query($pobierz_dane);
  5.  


ale raczej coś jest nie tak, bo nie daje wyniku.

Ten post edytował RABP 17.02.2013, 18:20:56


--------------------
Strony www i szablony Allegro / Białystok
Jeżeli uważasz, że Tobie pomogłem, kliknij: POMÓGŁ. Z góry dziękuję!
Go to the top of the page
+Quote Post
Damonsson
post
Post #4





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


  1. (SELECT tytul_opowiadania, url_opowiadania, tresc_opowiadania, opowiadania.data_utworzenia FROM opowiadania)
  2. UNION
  3. (SELECT nazwa_produktu, opis produktu, url_produktu, produkty.data_utworzenia FROM produkty)
  4. ORDER BY produkty.data_utworzenia DESC
  5. LIMIT 1

A tak?
Go to the top of the page
+Quote Post
RABP
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.08.2012

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


Dzięki za pomoc.

Niestety, ni groma, nawet nie drgnie...
Normalnie głupieję.


--------------------
Strony www i szablony Allegro / Białystok
Jeżeli uważasz, że Tobie pomogłem, kliknij: POMÓGŁ. Z góry dziękuję!
Go to the top of the page
+Quote Post
daniel1302
post
Post #6





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


  1. (SELECT tytul_opowiadania AS col1, url_opowiadania AS col2, tresc_opowiadania AS col3, data_utworzenia FROM opowiadania)
  2. UNION
  3. (SELECT nazwa_produktu AS col1, opis produktu AS col2, url_produktu AS col2, data_utworzenia FROM produkty)
  4. ORDER BY data_utworzenia DESC
  5. LIMIT 1


Ten post edytował daniel1302 17.02.2013, 19:44:59
Go to the top of the page
+Quote Post
RABP
post
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.08.2012

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


Cytat(daniel1302 @ 17.02.2013, 19:41:59 ) *
  1. (SELECT tytul_opowiadania AS col1, url_opowiadania AS col2, tresc_opowiadania AS col3, data_utworzenia FROM opowiadania)
  2. UNION
  3. (SELECT nazwa_produktu AS col1, opis produktu AS col2, url_produktu AS col2, data_utworzenia FROM produkty)
  4. ORDER BY data_utworzenia DESC
  5. LIMIT 1


Dzięki za burzę mózgów!
O to właśnie chodziło!
Aliasy rozwiązały tu wszystko.

TEMAT ZAMKNIĘTY

Ten post edytował RABP 17.02.2013, 21:35:41


--------------------
Strony www i szablony Allegro / Białystok
Jeżeli uważasz, że Tobie pomogłem, kliknij: POMÓGŁ. Z góry dziękuję!
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 - 04:40