Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie danych z dwóch różnych tabel MySQL.
Forum PHP.pl > Forum > PHP
RABP
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.
Damonsson
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.
RABP
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.
Damonsson
  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?
RABP
Dzięki za pomoc.

Niestety, ni groma, nawet nie drgnie...
Normalnie głupieję.
daniel1302
  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
RABP
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
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.