2016-10-26 2 views
-2

Я хочу, чтобы подсчитать все результаты, которые имеют одинаковое значение в запросе тузд, но независимо от того, что я попробовал это не дает мне правильное значениеПолучить количество одних и тех же результатов в MySQL

+-----+---------------+ 
    | RoomType  | ID | 
    +=====+===============+ 
    | dining room | 2 | 
    +-----+---------------+ 
    | sleeping room | 2 | 
    +-----+---------------+ 
    | sleeping room | 2 | 
    +-----+---------------+ 

и я хочу получить счет только в спальных комнатах.

Вот мой запрос:

SELECT rt.RoomType, r.property_id AS ID 
FROM Rooms r 
INNER JOIN RoomTypes rt ON r.type = rt.id 
WHERE r.property_id = '2' 

Я также попытался

SELECT SUM(IF(rt.RoomType = 'sleeping room', rt.RoomType, 0)) 
FROM Rooms r 
INNER JOIN RoomTypes rt ON r.type = rt.id 
WHERE r.property_id = '2' 

, но это не дает мне результаты, я хочу. Есть идеи?

+0

'count()' - http://dev.mysql.com/doc/refman/5.7/en/counting-rows.html – Blinkydamo

+0

Мне кажется, что вы пытаетесь суммировать яблоки и апельсины – RiggsFolly

+0

Что такое вы хотите? Также покажите нам образцы данных для обеих таблиц –

ответ

0

Я нашел ответ и рабочий способ, как это:

SELECT SUM(rt.RoomType = 'sleeping room') 
FROM Rooms r 
INNER JOIN RoomTypes rt ON r.type = rt.id 
WHERE r.property_id = '2' 

, а затем он дает мне правильный результат.

0

Предполагая, что таблица так:

CREATE TABLE `room_types` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `room_type` varchar(64) DEFAULT NULL, 
    `room_id` int(1) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8' 

и некоторые данные, как это:

1245 столовая 2

1246 ванны 3

1247 столовая 2

1248 кухня 5

104 столовая 2

Это должно работать:

SELECT COUNT (*), room_type, room_id из room_types где room_id = 2 группы по room_type;

Результат:

3 столовой 2

Надеется, что это помогает,

Ф.Ю.

+0

, но это неправильно. мне нужно только подсчитать спальню – BRG

Смежные вопросы