ねえ、私は、間のテーブルと多対多の関係で設定されているデータベーステーブルをクエリしようとしています。ここに問題のテーブルの簡単な群れがあります
Homes ----< Home_Feature >---- Features
以下のSQLクエリを作成しようとしましたが、ここで返される多くの行ではなく、ホームごとに1つの行を返す方法はありますか?または、より良いソリューションに対応するためにテーブル構造を変更する必要がありますか?
SELECT homes.title, homes.description, homes.living_room_count, homes.bedroom_count, homes.bathroom_count, features.feature_name
FROM homes
INNER JOIN home_feature
ON homes.home_id = home_feature.home_id
INNER JOIN features
ON home_feature.feature_id = features.feature_id;
クエリからの出力:
Title Feature ....
1 House A Balcony
2 House A Pool
3 House A Garage
4 House B Air-Con
ありがとう、助けてくれてありがとう!
____________________EDIT__________________________
ねえ、皆さんがこれまでに提供してくれた助けに大いに感謝し、このクエリへの追加と別のテーブルからの列の選択に関してもう少し助けが必要かどうか疑問に思っていました。
SELECTステートメントに他のテーブルの列を追加し、FROM句にテーブルを追加するだけで、クエリが機能しないように見えますか?使用しているクエリは以下のとおりですが、機能しません。助けてくれてありがとう。
SELECT homes.title, homes.description, homes.living_room_count, homes.bedroom_count, homes.bathroom_count, homes.price, homes.sqft, home_type.type_name,
listagg(features.feature_name, ',') WITHIN GROUP (ORDER BY features.feature_name) features
FROM homes, home_type
INNER JOIN home_feature
ON homes.home_id = home_feature.home_id
INNER JOIN features
ON home_feature.feature_id = features.feature_id
GROUP BY homes.title, homes.description, homes.living_room_count, homes.bedroom_count, homes.bathroom_count, homes.price, homes.sqft;
このエラーが発生します:
ORA-00904: "HOMES"."HOME_ID": invalid identifier
00904. 00000 - "%s: invalid identifier"