Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] łączenie tabel
peter13135
post
Post #1





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


struktura tabel:

portal forums
id | cat | name | access

portal topics
id | forum | name | views | autor | last_post | date | closed | sticky

chciałbym aby w wyniku zapytania były takie kolumny:

id | cat | name | access | num_topics* | lt_name** | lt_id***

* liczba rekordow w tabeli portal_topics where topics.forum=forums.id
** pole topics.name w rekordzie gdzie data ma najwiekszą wartość
*** to samo co wyżej z tym że topics.id

lt to tak jakby skrót od last_topic, chciałbym pobrać id oraz name ostatniego tematu

jak narazie wykminiłem coś takiego

  1. SELECT f.* , count( t.id ) AS num_topics, lt.name AS lt_name, lt.id AS lt_id
  2. FROM `portal_forums` f, `portal_topics` t, `portal_topics` lt
  3. WHERE f.id = t.forum AND lt.forum=f.id AND (...)
  4. GROUP BY f.id ASC


i niewiem co dalej.. może mi ktoś to napisać poprawnie ?

Ten post edytował peter13135 26.07.2009, 18:37:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


  1. SELECT portal_forums . * , (
  2. SELECT COUNT( * )
  3. FROM portal_topics WHERE portal_topics.forum = portal_forums.id) AS num_topics, (
  4. SELECT name
  5. FROM portal_topics WHERE portal_topics.forum = portal_forums.id
  6. ORDER BY id DESC LIMIT 1 ) AS lt_name, (
  7. SELECT id
  8. FROM portal_topics WHERE portal_topics.forum = portal_forums.id
  9. ORDER BY id DESC LIMIT 1 ) AS lt_id
  10. FROM portal_forums ORDER BY id ASC


takie coś działa, dzięki, jednak chciałby aby ktośzrobił to bardziej optymalnie (o ile to nie jest optymalne)

plusy rozdam później, niechce teraz zniechęcać ludzi do odwiedzania tego tematu
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: 26.12.2025 - 23:09