Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL] Optymalizacja zapytania LEFT OUTER JOIN, ....jak tu dodać if?
kiler129
post
Post #1





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

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


Witajcie!
Mam drobbny problem z napisaniem optymalnego zapytania do wyciągania drzewa nested set.

Tabela zawiera (dla uproszczenia) pola (varchar)name, (enum: none, news, article, page)type oraz (text)link.
Obecnie aby wyciągnąć drzewo wykonuje takie zapytanie:
  1. SELECT
  2. menu.*,
  3. news.seo_filename AS news_seo_filename,
  4. articles.seo_filename AS article_seo_filename,
  5. subpages.seo_filename AS subpage_seo_filename
  6. FROM menu
  7. LEFT OUTER JOIN news ON menu.link = news.id
  8. LEFT OUTER JOIN articles ON menu.link = articles.id
  9. LEFT OUTER JOIN subpages ON menu.link = subpages.id
  10. ORDER BY lft


Działa, ale jest to bardzo nieoptymalne (IMG:style_emoticons/default/smile.gif) Wolałbym coś z IF tak aby LEFT OUTER JOIN wykonywał się na tabeli news tylko wtedy gdy type==news itd.
Do tego fajnie aby zawsze seo_filename lądowało w to samo pole - w obecnej chwili muszę PHPem sobie wybrać.

Czy ktoś ma pomysł jak takowe zapytanie rozpisać? Próbowałem używać IF() ale niestety nic mi z tego nie wyszło.
Go to the top of the page
+Quote Post

Posty w temacie


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 - 18:23