![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 22.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
Mam specyficzny problem do rozwiązania z selectem. Co prawda rozwiązałem go w całkiem sprawnie działający sposób w PHP, jednak sposób ten zaczyna się komplikowac, gdy chcę zrobic filtrowanie danych. Mam dwie tabele: Tabela 1: Zawiera ID obiektu oraz kilka dodatkowych informacji; Tabela 2: Zawiera nazwy i opisy obiektów w różnych językach, powiązane z ID w tabeli 1. Wszystko byłoby proste, lecz nie chodzi mi o zwykłego join'a, lecz o taką sytuację: Każdy obiekt MUSI miec profil w języku angielskim, a dodatkowo MOŻE w innym języku. Jeśli na stronie ustawiony jest angielski, sprawa jest prosta - po prostu robię to zwykłym selectem z join'em. Sprawa się komplikuje, gdy na stronie będzie ustawiony polski. W takiej sytuacji chciałbym by wyglądało to tak: 1. Jeśli istnieje profil w j.polskim - wyświetl go; 2. Jeśli nie było profilu w j.polskim - wyświetl angielski. Czy ktoś ma jakiś pomysł, jak w mysql'u zrobic zapytanie/procedurę, która zwróci mi jednolity wynik utworzony wg. tych reguł? Pozdr Ten post edytował livinghatret 21.01.2010, 22:56:49 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 22.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za nakierowanie.
Mam jednak jeszcze pytanie: co, jeśli struktura tabel z opisami jest taka: id, id_obiektu (klucz obcy), id_języka, obiect_name Wtedy mamy: 1,1,0,Obiect 1 Name 2,1,1,Nazwa Obiektu 1 3,2,0,Obiect 2 Name 4,3,0,Obiect 3 Name Jak do tego zrobić podzapytanie, by zwróciło mi kolejne rekordy jako kolumny? Problem rozwiązany. Poradziłem sobie stosując zapytanie z podzapytaniem skorelowanym i dołączając brakującą częśc danych przez union. To wszystko wrzuciłem do widoku i teraz mogę sobie robic filtrowanie i sortowane, jakie mi się żywnie podoba. Ten post edytował livinghatret 22.01.2010, 11:31:33 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 08:35 |