Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zapytanie pod warunkiem 1 nazwy
#1
Witam. Jak ułożyć zapytanie, tak by pogrupowało rekordy z daną nazwą.

Mam tabele z pytaniami, i mam tabele z odpowiedziami.

Z odpowiedziami mam np. pytanie_id i chcę aby liczyło mi rekordy z danym id.

Mam np. 2 odpowiedzi z id 3 - liczy mi te ktore ma 3
Mam np. 1 odpowiedz do pytania id 8 i liczy mi ile jest odpowiedzi do tego pytania id 8.

Np.

Odpowiedzi: 1 - Tytuł
Odpowiedzi 0 - tytuł1

Nie umiem tego napisać prościej.

Wiem jak policzyć, nie wiem jak zapytanie skonstruować.
Odpowiedz
#2
COUNT() + GROUP BY
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz
#3
O to chodziło, dzięki ; )
Odpowiedz
#4
Próbowałem tak, ale coś nie wychodzi, gdzie mam błąd?

$zapytanie = mysql_query("SELECT COUNT() from answers GROUP BY question_id");
echo mysql_num_rows($zapytanie);
Odpowiedz
#5
Pokaż strukturę tabel, ok?
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz
#6
//Tworzymy trzecią tabele
mysql_query("CREATE TABLE `questions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` text NOT NULL,
`text` text NOT NULL,
`add` varchar(50) NOT NULL,
`data` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;");


//Tworzymy trzecią tabele
mysql_query("CREATE TABLE `answers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`question_id` int(11) NOT NULL,
`text` text NOT NULL,
`add` varchar(50) NOT NULL,
`data` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;");
Odpowiedz
#7
Dobra:
1. przy COUNT() liczysz wystąpienia w zbiorze jakiejś kolumny, u Ciebie nie ma
2. analogicznie, musisz stworzyć złączenie (JOIN)
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz
#8
SELECT COUNT(*) FROM tabela

Nie rozumiem punktu 2. Możesz mi wytłumaczyć?
Odpowiedz
#9
(11-12-2012, 20:01)Intelactive napisał(a): SELECT COUNT(*) FROM tabela

Nie rozumiem punktu 2. Możesz mi wytłumaczyć?
1. Lepiej licz po ID.
2. Jeśli chcesz pobrać rekordy z dwóch tabel, to musisz zastosować joina, nie? Wink W manualu MySQL znajdziesz co i jak.
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz
#10
Nie chce pobierać rekordy z 2 tabel. Chce by pogrupowało mi z answers po nazwach ; )

SELECT COUNT(*) FROM tabela GROUP BY costam.

Chyba źle się wyrazilem. To policzy mi ile tego jest.

Ja chcę, by wyświetlało mi dla każdego question_id ile jest.

Przykładowo jest trzy 2id w question id i pięc 3id w question_id
Chcę by wyświetliło mi, 6 i 15

Pokaże może jak to ma wyglądać ; )

Odpowiedzi 1: Tytuł
Odpowiedzi 1: blabla
Odpowiedzi 8: blabla
itp.
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [PHP/MYSQL] Problem z wyświetlaniem nazwy artykulu i pliku oraz rozmiaru pliku martinprz 0 2,288 16-11-2012, 03:53
Ostatni post: martinprz
  [PHP][MySQL] Plik pdf w linku koło nazwy artykułu martinprz 0 1,419 09-10-2012, 03:01
Ostatni post: martinprz
  PHP - zapytanie. Pomóżcie adamjaniec 0 1,701 03-08-2012, 20:31
Ostatni post: adamjaniec
  SQL zapytanie o group Radian 5 4,038 01-06-2012, 05:36
Ostatni post: Marys
  Nazwy dni w tygodniu toma5z 1 2,084 17-11-2011, 07:15
Ostatni post: Pedro84

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl