Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mySQL] dane z 2-ch tabel
Forum PHP.pl > Forum > Przedszkole
Guest
Szukalem na forum ale nie tego znalazlem, badz nie wychwycilem postu zgodnego z moim.

Mam dwie tabele:

A
numer int
id_klienta int
id_pracownika int
data_przyjecia date
...

B
numer int
id_klienta int
id_pracownika int
data_przyjecia date
... [dalej inne dane niz w A]


Chcialbym wyswietlac za jednym razem dane z obydwu tabel posortowane wg. daty przyjecia wywalajac ewentualne duplikaty numerow.

Np.

w A mam dane
1 | 2 | 2 | 2005-01-01
2 | 2 | 2 | 2005-01-02
3 | 2 | 2 | 2005-01-03
6 | 2 | 2 | 2005-01-06


W B mam dane
1 | 2 | 2 | 2005-01-01
3 | 2 | 2 | 2005-01-03
4 | 2 | 2 | 2005-01-05


i zeby wyswietlil mi jedna liste:
1 | 2 | 2 | 2005-01-01
2 | 2 | 2 | 2005-01-02
3 | 2 | 2 | 2005-01-03
4 | 2 | 2 | 2005-01-05
6 | 2 | 2 | 2005-01-06


Probowale na rozne sposoby poprzez JOIN ale sprawa mnie kompletnie przerosla i zaczynam odnosic wrazenie ze wogole sie tego nie da zrobic.

Bede wdzieczny, bardzo wdzieczny za pomoc.
Kshyhoo
Całkie niedawno (chyba z zeszłym tygodniu) było omawiane to na tym forum. Poszperaj.
popbart
  1. SELECT DISTINCT id_klienta, id_pracownika,DATA
  2. FROM (SELECT id_klienta, id_pracownika,DATA
  3. FROM a UNION ALL
  4. SELECT id_klienta, id_pracownika,DATA
  5. FROM b ) AS temp ORDER BY DATA

Takie "bajery" są tylko w wersji 4.1.x .
Więc albo warto przesiąść się na postgresa,
albo spróbuj męczarni(pętelek,tabel tymczasowych),
albo stwórz bardziej normalną strukturę bazy smile.gif

edit----------
jest jeszcze rozwiązanie dostępne od 4.0
  1. SELECT
  2. id_klienta, id_pracownika,DATA
  3. FROM a UNION DISTINCT SELECT id_klienta, id_pracownika,DATA
  4. FROM b
Guest
Tego sie niestety spodziewalem ze to niewykonalne na MySQL-u:(

Jedynym rozsadnym pomyslem jaki przychodzi mi do glowy to stworzenie tabeli tymczasowej i wrzucenie do niej danych z jednej i drugiej tabeli i dopiero wyswietlic.
Co o tym sadzicie?
popbart
Sprawdź może najpierw czy twoja baza nie może być lepiej skonstruowana.
Podejrzewam że to nie pierwszy problem na jaki trafisz winksmiley.jpg
Guest
To byl tylko przyklad, ktory obrazuje problem. Calosc jest nieco bardziej skomplikowana.

Tabela A jest tabela zawierajaca tymczasowe/robocze dane. Jest tylko jeden przypadek w ktorym potrzebuje skorzystac z danych z obydwu tabel jednoczesnie, potem wszedzie korzystam tylko z danych tabeli B. A miejsce w ktorym to wykorzystuje to jest jedna lista rozwijana i tyle. Nie bede z powodu jednej listy rozwijanej pisal wszystkiego od poczatku bo system mam generalnie gotowy.
popbart
Masz racje, to mysql tworzy problemy(a raczej jego braki).
Może twoja wersja ma choć takie "udogodnienie" (ominiesz pętle) smile.gif
  1. INSERT
  2. INTO temp SELECT *
  3. FROM a; INSERT
  4. INTO temp SELECT *
  5. FROM b
Guest
popbart, nie wiesz nawet jak mi sprawe ulatwiles winksmiley.jpg
WIELKIE DZIEKI!
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.