Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, desculpa o incomodo, mais e que to apanhando aqui para dar um ALIAS Duplo nesta consulta
Tenho uma tabela chamada carros, e cada carro pode ser avaliada por diferentes usuários, ate ai tudo bem, criei uma tabela secundaria chamada avaliações e cada carro pode ser avaliado por vários usuários diferentes.
Agora preciso que cada carro mostre uma avaliação geral, que e pegar todas as avaliações de todos os usuários em um determinado carro e mostrar em uma lista com todos os carros.
Ai que esta minha duvida, como recuperar as avaliações da tabela avaliação. e quantas pessoas votaram
Inseri a Tabela para melhor entender, vou pegar so a somatória da avaliação geral e quantas pessoas avaliaram o mesmo carro exemplo
Com este SELECT eu consigo pegar o que eu preciso, mais não estou consegindo exibir a quantidade de avaliações ( geral_ava )
Aqui esta o exemplo do codigo funcionando
http://sqlfiddle.com/#!9/23cfaf/6
SELECT , (SELECT COUNT() FROM avaliacao WHERE id_car_ava=id_car ),(SELECT SUM(geral_ava) FROM avaliacao WHERE id_car_ava = id_car ) AS QT FROM carros
As tabelas do BD são estas
CREATE TABLE IF NOT EXISTS `avaliacao` (
`id_ava` int(11) NOT NULL,
`id_car_ava` int(11) NOT NULL,
`id_usu_ava` int(11) NOT NULL,
`dirigibilidade_ava` int(11) NOT NULL,
`estabilidade_ava` int(11) NOT NULL,
`potencia_ava` int(11) NOT NULL,
`consumo_ava` int(11) NOT NULL,
`geral_ava` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
--
-- Extraindo dados da tabela avaliacao
--
INSERT INTO avaliacao (id_ava, id_car_ava, id_usu_ava, dirigibilidade_ava, estabilidade_ava, potencia_ava, consumo_ava, geral_ava) VALUES
(1, 1, 2, 4, 2, 2, 4, 4),
(2, 1, 6, 4, 4, 5, 5, 5),
(3, 2, 7, 5, 5, 5, 4, 3),
(4, 3, 9, 4, 4, 4, 4, 3);
-- --------------------------------------------------------
--
-- Estrutura da tabela carros
--
CREATE TABLE IF NOT EXISTS `carros` (
`id_car` int(11) NOT NULL,
`model_car` varchar(200) NOT NULL,
`ano_car` int(12) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
--
-- Extraindo dados da tabela carros
--
INSERT INTO carros (id_car, model_car, ano_car) VALUES
(1, 'Golf', 2000),
(2, 'Pálo', 1998),
(3, 'Jeta', 2015),
(4, 'Peugeout 206', 2006);
--
-- Indexes for dumped tables
--
--
-- Indexes for table avaliacao
--
ALTER TABLE `avaliacao`
ADD PRIMARY KEY (`id_ava`);
--
-- Indexes for table carros
--
ALTER TABLE `carros`
ADD PRIMARY KEY (`id_car`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table avaliacao
--
ALTER TABLE `avaliacao`
MODIFY `id_ava` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=5;carrosALTER TABLE `carros`
MODIFY `id_car` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=5;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;Carregando comentários...