2016-10-26 12 views
-2
私はmysqlのクエリで同じ値を持つすべての結果をカウントする

で同じ結果の数を取得しますが、私が試したものに関係なく、それは私に適切な値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' 

を試してみましたが、それは私が望む結果を与えるものではありません。何か案は?

SELECT SUM(rt.RoomType = 'sleeping room') 
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

私はこのように答えや作業方法を発見しました。

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

これは動作するはず:

選択数(*)、room_type、room_typeによってroom_id = 2基room_typesからroom_idと、

結果:2

はそれが役に立てば幸い

3ダイニングルーム、

f.u.

+0

これは間違っています。私は寝室を数える必要があります – BRG