Mam z poniższym zapytaniem:
SELECT users.id, users.login, count( k.id ) AS liczba, count( k2.id ) AS pozytywne, count( k1.id ) AS neutralne, count( k0.id ) AS negatywne
FROM users JOIN komentarze AS k ON k.TO = users.id
LEFT JOIN komentarze AS k2 ON k2.TO = users.id AND k2.typ =2
LEFT JOIN komentarze AS k1 ON k1.TO = users.id AND k1.typ =1
LEFT JOIN komentarze AS k0 ON k0.TO = users.id AND k0.typ =0
GROUP BY users.id
ORDER BY liczba DESC LIMIT 0, 10
Problem polega na tym, że wyniki count nie są dla mnie satysfakcjonujące.
Wynik zapytania to:

A powinien:
Z góry dziękuje za wszelką pomoc.Zrzut tabel:
-- phpMyAdmin SQL Dump
-- version 2.10.3
-- Wersja serwera: 5.0.45
-- Wersja PHP: 5.1.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
-- --------------------------------------------------------
--
-- Struktura tabeli dla `komentarze`
--
CREATE TABLE `komentarze` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`from` int(11) NOT NULL,
`to` int(11) NOT NULL,
`aid` int(11) NOT NULL,
`text` varchar(300) NOT NULL,
`reply` varchar(300) DEFAULT NULL,
`dodano` datetime NOT NULL,
`typ` int(2) NOT NULL DEFAULT '2',
`rejstr` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'czy właściciel zarejstrowany',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=88 ;
--
-- Zrzut danych tabeli `komentarze`
--
INSERT INTO `komentarze` VALUES (82, 11, 423, 0, 'asdas', NULL, '2008-03-02 17:51:56', 2, 1);
INSERT INTO `komentarze` VALUES (83, 11, 423, 0, 'asdas', NULL, '2008-03-02 17:51:56', 2, 1);
INSERT INTO `komentarze` VALUES (84, 11, 423, 0, 'asdas', NULL, '2008-03-02 17:51:56', 2, 1);
INSERT INTO `komentarze` VALUES (87, 12, 423, 0, 'sssssssssssss', 'fddffsd', '2008-04-07 19:31:06', 1, 1);
-- --------------------------------------------------------
--
-- Struktura tabeli dla `users`
--
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`login` varchar(32) NOT NULL,
`email` varchar(255) NOT NULL,
`pass` char(40) NOT NULL COMMENT 'sha1',
`active` varchar(8) NOT NULL COMMENT 'jeśli równe ''yes'' to user ma potwierdzone konto',
`reg_date` datetime NOT NULL COMMENT 'data rejestracji',
`ocen` int(11) NOT NULL DEFAULT '0' COMMENT 'liczba ocen (tymczasowe)',
`imie` varchar(255) NOT NULL,
`nazwisko` varchar(255) NOT NULL,
`firma` varchar(255) NOT NULL,
`adres` varchar(255) NOT NULL,
`kod` varchar(6) NOT NULL DEFAULT '-',
`miasto` varchar(255) NOT NULL,
`woj` enum('','dolnośląskie','kujawsko-pomorskie','lubelskie','lubuskie','łódzkie','małopolskie','mazowieckie','opolskie','podkarpackie','podlaskie','pomorskie','śląskie','świętokrzyskie','warmińsko-mazurskie','wielkopolskie','zachodniopomorskie') NOT NULL,
`nip` varchar(20) NOT NULL,
`regon` varchar(20) NOT NULL,
`tel1` int(10) NOT NULL,
`tel2` int(10) NOT NULL,
`gg` int(10) NOT NULL,
`www` varchar(255) NOT NULL,
`omnie` text NOT NULL,
`photo` varchar(255) NOT NULL COMMENT 'nazwa zdj. z kat. /photos/',
`dlug` int(11) NOT NULL DEFAULT '0',
`lastseen` date NOT NULL,
`firmach` char(1) NOT NULL DEFAULT '1',
`adresch` char(1) NOT NULL DEFAULT '1',
`kodch` char(1) NOT NULL DEFAULT '1',
`miastoch` char(1) NOT NULL DEFAULT '1',
`wojch` char(1) NOT NULL DEFAULT '1',
`nipch` char(1) NOT NULL DEFAULT '1',
`regonch` char(1) NOT NULL DEFAULT '1',
`tel1ch` char(1) NOT NULL DEFAULT '1',
`tel2ch` char(1) NOT NULL DEFAULT '1',
`ggch` char(1) NOT NULL DEFAULT '1',
`wwwch` char(1) NOT NULL DEFAULT '1',
`imiech` char(1) NOT NULL DEFAULT '1',
`nazwiskoch` char(1) NOT NULL DEFAULT '1',
`block` varchar(4) DEFAULT NULL,
PRIMARY KEY (`login`),
KEY `id` (`id`),
FULLTEXT KEY `login` (`login`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=428 ;
--
-- Zrzut danych tabeli `users`
--
INSERT INTO `users` VALUES (423, 'sledziu1', '', '', 'yes', '2008-03-01 18:01:32', 0, 'aaa', 'bbb', 'fgggggg', 'zdsadas 22', '22-333', 'sdfsda', 'lubuskie', '', '', 1234, 6877, 0, '', 'fgfgfgddf<br />\r\n<b>aaa</b><br />\r\n<br />\r\n<br />\r\n<br />\r\nc', '', 0, '0000-00-00', '1', '1', '1', '1', '1', '', '', '1', '1', '', '', '', '', NULL);
Ten post edytował sledziu1 7.04.2008, 20:33:02