Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem ze zlozonym zapytaniem
Forum PHP.pl > Forum > Bazy danych > MySQL
vadergb
Mam takie zapytanie:

  1. SELECT eb.id,eb.name,ebp.id AS id_post,ebp.date,ebp.user_id,u.nick FROM erasmusi_board AS eb LEFT JOIN erasmusi_board_post AS ebp ON eb.id=ebp.board_id LEFT JOIN users AS u ON u.id=ebp.user_id WHERE group_id='$id' GROUP BY eb.id ORDER BY ebp date


Ma za zadanie pobierac topiki forum + date i uzytkownika ktory dodal ostatni post.

Topiki pobiera, date i uzytkownika tak - ale nie ostaniego postu. Jak to wykonac aby za pomoca jednego zapytania pobrac te dane?

Moze trzeba dodac pole do tabli board "lastpost_id" ?

pozdrawiam

erix
Cytat
Moze trzeba dodac pole do tabli board "lastpost_id" ?

Tak by było lepiej, a najlepiej osobne pole na datę i UID przy poście. Fakt, mniejsza normalizacja, ale większa wydajność.

Cytat
Topiki pobiera, date i uzytkownika tak - ale nie ostaniego postu. Jak to wykonac aby za pomoca jednego zapytania pobrac te dane?

Da się, ale to sporo zapytań.
phpion
Spróbuj w ten sposób:
  1. SELECT * FROM (SELECT eb.id,eb.name,ebp.id AS id_post,ebp.date,ebp.user_id,u.nick FROM erasmusi_board AS eb LEFT JOIN erasmusi_board_post AS ebp ON eb.id=ebp.board_id LEFT JOIN users AS u ON u.id=ebp.user_id WHERE group_id='$id' ORDER BY ebp.date DESC) t GROUP BY t.id

O ile dobrze rozkminiłem strukturę tabel i relacje to powinno zadziałać.
vadergb
Cytat(phpion @ 10.09.2009, 19:05:08 ) *
Spróbuj w ten sposób:
  1. SELECT * FROM (SELECT eb.id,eb.name,ebp.id AS id_post,ebp.date,ebp.user_id,u.nick FROM erasmusi_board AS eb LEFT JOIN erasmusi_board_post AS ebp ON eb.id=ebp.board_id LEFT JOIN users AS u ON u.id=ebp.user_id WHERE group_id='$id' ORDER BY ebp.date DESC) t GROUP BY t.id

O ile dobrze rozkminiłem strukturę tabel i relacje to powinno zadziałać.


Nie o to mi chodzilo - bo tutaj masz 2 zapytania a nie jedno.

Czyli chyba pozostaje dodac lastpost_id do tabeli i wtedy przy dodawaniu postu zrobic 1 update wiecej (ale co to jest 1 update przy xx-xxx selectow).
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.