我想在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 :(得分:0)
我找到了答案和这样的工作方式:
SELECT SUM(rt.RoomType = 'sleeping room')
FROM Rooms r
INNER JOIN RoomTypes rt ON r.type = rt.id
WHERE r.property_id = '2'
然后它给了我正确的结果。
答案 1 :(得分: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浴31247餐厅2
1248 kitchen 5
104饭厅2
这应该有效:
从room_types中选择count(*),room_type,room_id,其中room_id = 2 by room_type;
结果:
3饭厅2
希望它有所帮助,
f.u。