Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Konstrukcja zapytania z użyciem połączeń
tomaszowiaktv
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 29.07.2014

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


  1. $result = dbquery(
  2.  
  3. "(SELECT tn.*, tc.*, tu.user_id, tu.user_name, tu.user_status
  4. FROM ".DB_NEWS." tn
  5. LEFT JOIN ".DB_USERS." tu ON tn.news_name=tu.user_id
  6. LEFT JOIN ".DB_NEWS_CATS." tc ON tn.news_cat=tc.news_cat_id
  7. WHERE news_cat='3'
  8. GROUP BY news_id
  9. ORDER BY news_datestamp DESC)
  10.  
  11. UNION
  12.  
  13. (SELECT tn.*, tc.*, tu.user_id, tu.user_name, tu.user_status
  14. FROM ".DB_NEWS." tn
  15. LEFT JOIN ".DB_USERS." tu ON tn.news_name=tu.user_id
  16. LEFT JOIN ".DB_NEWS_CATS." tc ON tn.news_cat=tc.news_cat_id
  17. WHERE news_cat='4'
  18. GROUP BY news_id
  19. ORDER BY news_datestamp DESC)"
  20. );



Mam takie podwójne zapytanie. Pierwsza część wyświetla mi rekordy z atrybutem news_cat=3, natomiast druga cześć kodu wyświetla rekordy z news_cat=4 (sortowane według daty dodania).


Wynikiem tego zapytania jest wyświetlanie na ekranie newsów z dwóch kategorii. Najpierw wyświetlane i sortowane są newsy z kategorii o id=3, a następnie wyświetlane są newsy z kategorii o id=4.

Schemat ułożenia newsów na stronie (sortowane według daty dodania):

News 1 ( news_cat=3)
News 3 ( news_cat=3)
News 5 ( news_cat=3)


News 2 ( news_cat=4)
News 4 ( news_cat=4)
News 6 ( news_cat=4)


Czy mógłbym prosić o pomoc/wskazówki w modyfikacji tego zapytania, tak aby newsy (rekordy) mogłyby być przeplatane niezależnie od kategorii do jakiej należą. Z uwzględnieniem daty dodania.

Czyli wynik miałby tak wyglądać:


News 1 ( news_cat=3)
News 2 ( news_cat=4)
News 3 ( news_cat=3)
News 4 ( news_cat=4)
News 5 ( news_cat=3)
News 6 ( news_cat=4)



Proszę o wskazówkę co należy zmienić.
Go to the top of the page
+Quote Post

Posty w temacie


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: 21.08.2025 - 06:19