Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Łączenie wyników z 2 tabel
Forum PHP.pl > Forum > Przedszkole
adam882
Witam

Posiadam takie dwa zapytania:

1. SELECT kat, ikona, autor, ikona, nazwa, wstep, data FROM artykuly WHERE activ=1 AND glowna=1 ORDER BY data DESC LIMIT 5
2. SELECT kat, ikona, autor, ikona, nazwa, wstep, data FROM historie WHERE activ=1 AND glowna=1 ORDER BY data DESC LIMIT 5

W jaki sposób mogę połączyć te dwa zapytania, aby wyświetliło mi wyniki z 2 tabel, posortowane według daty (w formacie unixowym)? A może da się jakoś posortować zapytanie według kluczy ID ? Czy da się również jakoś wykryć, czy pobrany rekord pochodzi z tabeli artykuły lub historie ?
Greg0
SELECT kat, ikona, autor, ikona, nazwa, wstep, data FROM artykuly, historie WHERE activ=1 AND glowna=1 ORDER BY data DESC LIMIT 5
adam882
A czy istnieje jakaś możliwość posortowała na podstawwie samegu numeru ID ?

Dodam, że powyższe zapytanie nie działa
ŁukaszŁ.
a napisz kolego jakie masz klucze i gdzie jest klucz obcy...

Nie wiem jak masz zaprojektowaną bazę, natomiast tabele łączy się na 2 sposoby, wykonując podzapytania np. select * from tabela where id = (select id from tabela2) lub korzystając z wyrażenia "join" np. select tabela.cos, tabela2.cos from tabela join tabela2 using(id). Klauzulę using stosuje się jeżeli nazwy kluczy są takie same.
mmmmmmm
  1. SELECT *, 'artykuly' AS `nazwa tabeli` FROM (SELECT id, kat, ikona, autor, ikona, nazwa, wstep, DATA FROM artykuly WHERE activ=1 AND glowna=1 ORDER BY DATA DESC LIMIT 5) x
  2. UNION ALL
  3. SELECT *, 'historie' FROM (SELECT id, kat, ikona, autor, ikona, nazwa, wstep, DATA FROM historie WHERE activ=1 AND glowna=1 ORDER BY DATA DESC LIMIT 5) y
  4. ORDER BY id

Nie sprawdzałem, czy zadziała, ale powinno
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.