Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SELECT w SELECT'ie
Forum PHP.pl > Forum > Bazy danych > MySQL
maly_pirat
Cześć.

Otóż mam pewien problem, gdyż próbuje napisać mechanizm głosowania pod system newsów.

> Schemat dla newsów jest mało ważny (nic nie dodawałem tam odnośnie głosowania).
> Schemat bazy dla tabeli głosów: id | id_news | userid | typ_glosu | (typ głosu: 1 - OK, 2 - ŹLE)

Teraz mam pewien problem, ponieważ chciałbym zliczyć te głosy na OK i na ŹLE, ale w jaki sposób?
Pomyślałem o SELECT w SELECT (zapytanie w zapytaniu) widziałem parę razy na forum php.pl przykłady, ale sam nigdy tego nie stosowałem i nie jestem pewien czy taka metoda okaże się skuteczna.

W tej chwili zapytanie prezentuje się następująco:
  1. mysql_query("select n.*, c.*, u.*, count(g.type) as allVotes
  2. from news as n
  3. left join kategorie_newsow as c on(n.katid=c.katid)
  4. left join uzytkownicy as u on(n.autornewsa=u.userid)
  5. left join glosy as g on(n.newsid=g.id_news) ");


Może mi ktoś pomóc? W którym miejscu dać "zapytanie w zapytaniu" gdzie warunek WHERE powinien być "WHERE typ_glosu = 1) oraz "WHERE typ_glosu = 2) i to wszystko pod COUNT.

Czy może lepiej będzie przebudować tabele głosów? coś w stylu: id, id_news, glos_tak, glos_nie i najwyżej będzie się wstawiać TRUE : FALSE w przypadku głosów na TAK / NIE.

Jakie macie propozycje?
Mchl
Dołącz tabelę głosy dwa razy, raz do zliczenia głosów na tak, drugi do zliczenia głosów na nie.
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.