Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mySQL] dane z 2-ch tabel
-Guest-
post
Post #1





Goście







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.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Całkie niedawno (chyba z zeszłym tygodniu) było omawiane to na tym forum. Poszperaj.
Go to the top of the page
+Quote Post
popbart
post
Post #3





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


  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 (IMG:http://forum.php.pl/style_emoticons/default/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


Ten post edytował popbart 1.02.2005, 14:31:42
Go to the top of the page
+Quote Post
-Guest-
post
Post #4





Goście







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





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


Sprawdź może najpierw czy twoja baza nie może być lepiej skonstruowana.
Podejrzewam że to nie pierwszy problem na jaki trafisz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
-Guest-
post
Post #6





Goście







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





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


Masz racje, to mysql tworzy problemy(a raczej jego braki).
Może twoja wersja ma choć takie "udogodnienie" (ominiesz pętle) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
  1. INSERT
  2. INTO temp SELECT *
  3. FROM a; INSERT
  4. INTO temp SELECT *
  5. FROM b
Go to the top of the page
+Quote Post
-Guest-
post
Post #8





Goście







popbart, nie wiesz nawet jak mi sprawe ulatwiles (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
WIELKIE DZIEKI!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 13:51