Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] rozbudowane zapytanie
Forum PHP.pl > Forum > Bazy danych > MySQL
Jawor
Witam

Mam dwie tabele:

1. wiadomosci
IdWiadomosci, IdKategorii, IdUzytkownika, Tytul

2. kategorie
IdKategorii, IdKategoriGlownej, Nazwa

Tabela wiadomosci bedzie zawierac dosyc duzo rekordow (okolo 1000 dla kazdego uzytkownika).
Tabela kategorie bedzie ich miala okolo 100.

Mam pytanie czy wykonalne jest stworzenie takiego zapytania, a jezeli tak to czy to bedzie wydajne.

Pobrac cala zawartosc z tabeli wiadomosci gdzie IdUzytkownika rowna sie przykladowemu n, jednoczesnie pobrac z tabeli kategorie nazwe danej kategorii (wiadomosci.IdKategorii), a do tego jezeli pobrana kategoria nie bedzie kategoria glowna (IdKategoriGlownej > 0) to pobrac nazwe kategorii glownej.

Myslalem zeby to zrobic tak ze osobno bede pobieral wszystkie nazwy kategorii, wrzucal do tablicy i z niej podmienial id na nazwy - obawiam sie jednak ze kazdorazowe pobieranie wszystkich kategorii nie bedzie za bardzo wydajne.

Bede wdzieczny za kazda podpowiedz jak to wykonac.
ayeo
Zrób LEFT JOINA i pobieraj od razu kategorię główną.
Możesz się bawić z HAVING i IFami, CASE'ami ale po co? Kategorię główną pobieraz zawsze i tyle...
Pozdrawiam!
Jawor
No ok, pobieram LEFT JOIN'em nazwe kategorii, i id kategorii glownej - ale jak mam pobrac nazwe tej glownej kategorii ?

Teraz mam zapytanie:

  1. SELECT wiadomosci.IdWiadomosci AS wiadomosci_IdWiadomosci, wiadomosci.IdKategorii AS wiadomosci_IdKategorii, wiadomosci.Tytul AS wiadomosci_Tytul, kategorie.IdKategorii AS kategorie_IdKategorii, kategorie.IdKategoriGlownej AS kategorie_IdKategoriiGlownej, kategorie.Nazwa AS kategorie_Nazwa
  2. FROM wiadomosci LEFT JOIN kategorie ON wiadomosci.IdKategorii = kategorie.IdKategorii
  3. WHERE wiadomosci.IdUzytkownika = '$jakiesid'


Tylko teraz nie wiem jak dolaczyc jeszcze kategorie (jej nazwe) o IdKategorii rownym IdKategoriiGlownej (z tej juz pobranej kategorii) ?
Drugi raz uzyc LEFT JOINA ?

UPDATE:
Dalem drugiego LEFT JOINA rowniez z dolaczeniem tabeli kategorii no i jak narazie to dziala.
Ale czy to jest najlepsze rozwiazanie ?
Jezeli da sie to zrobic jakos lepiej/szybciej bede wdzieczny za propozycje.
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.