こんにちは私は以下のツリーテーブルを持っており、「望みの結果」というテーブルを達成したいと思います。 最初は家の名前、2番目の家の名前は各家の部屋の名前、3番目の名前は各部屋の価格です。 私は家ごとの部屋数を求めています。SQL-基準でテーブル(LEFT JOIN)からカウントを取得する
のtable_1
nid name
1 House 1
2 House 2
3 House 3
table_2
Name house_ref_id id
Room1 1 20
Room1 2 21
Room1 2 22
Room1 3 23
Room1 3 24
table_3
Price room_ref_id
0 20
100 21
150 22
0 23
120 24
募集結果:
nid name Rooms w/ price
1 House1 0
2 House2 2
3 House3 1
私は、次のコードを試してみましたが、価格
SELECT Name, COUNT(price) AS "rooms w/ price" FROM table_1
LEFT JOIN table_2 ON table_1.id = table_2.ref_id
LEFT JOIN table_3 ON table_2.room_ref_id = table_3.id
WHERE table_3.price>0
GROUP BY table_1.nid
で部屋の適切な量を得ることができるが、以下を得た:
nid name rooms w/ price
1 nouse1 1
2 house2 2
3 house3 2
WHERE table_3.price = 0 OR table_3.price IS NULL '? – StanislavL
あなたのデータによれば、 'nid = 1'は出力に全く含まれてはいけません。また、実際に使用しているデータベースと一致するようにタグを修正する必要があります。 –
ゴードンさん、ありがとう、私はSELECT句にnidを含めるのを忘れていましたが、答えはありがとうございました – Luis