Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] SELECT z tabeli w zależności od wartości pola
-lukasamd-
post
Post #1





Goście







Witam,
mam pewien problem w skonstruowaniu zapytania.

Posiadam 4 tabele:
- komentarze
- artykuły
- newsy
- inne
- zdjęcia

Chciałbym wyciągnąć z tabeli ostatnie komentarze. Nie jest to problem, ponieważ znajduje się tam pole z datą dodania. Chodzi o to, że chciałbym wyciągnąć również inne dane z innych tabel, np. tytuł newsa do którego jest dany komentarz.

W tabeli komentarze mam pole odpowiadające za typ, które może mieć takie wartości: A, N, I, Z - odpowiednio do artykułów, newsów, innych i zdjęć.

Jak wyciągnąć ostatnie komentarze oraz tytuły odpowiadających im elementów? Wszystko sprowadza się do tego, że gdy pole komentarz_typ ma A, tytuł ma być pobierany z tabeli artykuły, gdy zaś komentarz_typ = N, z tabeli newsy itp. Moje pytanie: jak to zrobić w praktyce?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kefirek
post
Post #2





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Coś w ten desen bedzie dodaj sobie tylko WHERE
  1. SELECT comment_id, article_subject AS nazwa, comment_message
  2. FROM fusion_comments LEFT JOIN fusion_articles ON (article_id=comment_item_id)
  3. UNION
  4. SELECT comment_id, photo_title AS nazwa, comment_message
  5. FROM fusion_comments LEFT JOIN fusion_photos ON (photo_id=comment_item_id)
  6. UNION
  7. SELECT comment_id, news_subject AS nazwa, comment_message
  8. FROM fusion_comments LEFT JOIN fusion_news ON (news_id=comment_item_id)
  9. UNION
  10. SELECT comment_id, page_title AS nazwa, comment_message
  11. FROM fusion_comments LEFT JOIN fusion_custom_pages ON (page_id=comment_item_id)


Ten post edytował kefirek 27.02.2009, 16:22:47
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: 30.09.2025 - 19:25