Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql]SELECT jednej kolumny(distinct) z X tabel
ostry400
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 9.04.2012

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


Witam

Siedzę i głowię się nad tym rozwiązaniem ale niestety wszędzie znajduje proste łączenie kilku różnych tabel jako relacje.

Posiadam tabele ogólną w której mam spis wszystkich wydarzeń:
tam jest IDjako klucz główny oraz id_wydarzenia jako klucz obcy oraz id_organizator i kilka innych nieistotnych kolumn

Każde wydarzenie ma swoją tabelę w której zapisują się chętni na to wydarzenie nazywa się tak samo jak id_wydarzenia
i w niej jest pole np miasto.

Teraz pytanie potrzebuje znaleźć wszystkie miasta(distinct) danego organizatora.

Próbowałem podzapytaniami

SELECT miasto FROM (SELECT id FROM zawody WHERE id_organizator='xxxx')

generalnie problem jest juz tu jeśli wezme na sztywno 2 tabele:

SELECT miasto FROM x122,x110

Rozumiem że powinno być np

SELECT x.122miasto, x110miasto FROM x122,x110

Z join też nic z tego bo jak dodać niewiadomą ilość tabel questionmark.gif może ich być 30 a może być 1 ?

Prosze o nakierowanie gdzie szukac rozwiązania. Może to jest prostsze niż budowa cepa ale za daleko szukam ?

Pozdrawiam i z góry dzięki za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Jeśli każde wydarzenie ma swoją tabelę, to masz źle zaprojektowaną bazę danych.

A póki co:
SELECT
UNION
SELECT
UNION
...
SELECT


--------------------
Go to the top of the page
+Quote Post
ostry400
post
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 9.04.2012

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


No niestety tak musi być zbudowana bo nie wyobrażam sobie 100 zapytan w jednym momencie z jednej tabeli która ma 50 000 rekordow do której dane mogą być wpisywcmane updatowane i odczytywane w tym samym momencie. Użytkownicy mogą się dopisywać oglądać listy edytować na 100 różnych wydarzen.

A raz w tygodniu każda tabela jest maltretwoana średnio co 30 s przez 3 do 10h w sensie edytowana nie mówiąc już o wyświetlaniu danych z tej i 3 innych tabel dla tego wydarzenia czasem przez nawet 500 osob.

Więc jeśli moja baza nadal jest złe zaprojektowana to proszę o info chętnie poznam nowe pomysły które mogą przyspieszyć działanie

To jest dla mnie bardziej bajer i uproszczenie niż rzecz niezbędna

Union też nie do końca mnie urządza bo nie wiem ile tych tabel będzie .
Jeśli niema tu prostego rozwiązania to zrobię to 2 petlami w PHP smile.gif to będzie używane kilka może kilkanaście razy do roku tongue.gif

Dzięki za zainteresowanie
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 - 18:25