私はプログラミングとSQLの初心者です。私のRailsアプリケーションでは、ユーザー、リスト、予約と呼ばれるテーブルがあります。ユーザーhas_manyリストと予約。has_many予約とbelongs_toユーザーリストはリストとユーザーに属します。3つの関連するテーブルからデータをフェッチする方法
スキーマ:
create_table "users", force: :cascade do |t|
t.string "email",
t.string "fullname",
t.string "phone_number"
end
create_table "listings", force: :cascade do |t|
t.string "vehicle_type",
t.string "listing_name" ,
t.string "make",
t.string "model",
t.string "year",
t.integer "daily_rent",
t.integer "user_id"
end
create_table "reservations", force: :cascade do |t|
t.integer "user_id",
t.integer "total",
t.integer "listing_id"
end
mysql schema:
desc users;
id | int(11) | NO | PRI | NULL | auto_increment |
email | varchar(255)
fullname | varchar(255)
phone_number | varchar(255)
desc listings;
id | int(11) | NO | PRI | NULL | auto_increment |
vehicle_type | varchar(255)
make | varchar(255)
model | varchar(255)
year | varchar(255)
listing_name | varchar(255)
daily_rent | int(11) |
user_id | int(11) | YES | MUL | NULL | |
desc reservations;
| id | int(11) | NO | PRI | NULL | auto_increment |
user_id | int(11) | YES | MUL | NULL |
total | int(11) | YES | | NULL |
listing_id | int(11) | YES | MUL | NULL |
私は、両方のは、私はシンプルでアップできたすべてのユーザー あり、クエリは次の詳細リストの所有者とゲストとして
RESERVATIONS # | LISTING OWNER NAME | LISTING OWNER EMAIL | LISTING OWNER PHONE | GUEST NAME | GUEST EMAIL | CLASS OF LISTING | YEAR OF LISTING | NIGHTLY RENTAL RATE OF LISTING| TOTAL RENTAL AMOUNT
と予約から取得したいですゲストの電子メールと電話ですべての予約の詳細を取得し、対応する予約の詳細を一覧表示するSQLクエリ
私のクエリ:
select r.id , u.email, u.fullname ,l.listing_name,l.year,l.daily_rent,r.total from reservations r , users u ,listings l where u.id = r.user_id and l.id = r.listing_id;
1)私はLISTINGの所有者名を抽出するためにできない午前| OWNER EMAIL | OWNER PHONEですが、私はです。ゲストを取得するにはNAME |ゲストの皆様へ|ゲストハウス。 LISTING OWNERの詳細を取得する方法は?使用して全体のクエリを記述する方法
2)
は、結合または任意の他のSQL句は、(iは、u.fullname、l.year..etcアプローチ)3 u.emailのファンではありません)上記のすべてのデータを1つのクエリから取得できますか?
詳細が必要な場合はお知らせください。
ヘルプは非常に感謝しています。アドバンスでよろしくお願いします。
あなたはあなたの答えを得ましたか?私はあなたの問題を解決するための答えを押しました。 –