2
プロパティ(例:ホテル)に客室があり、予約できる予約サイトを構築しています。Yii2サブクエリに参加
は私が指定した日付範囲内に利用可能なお部屋をフィルタリングし、生のSQLクエリを作ったが、私はYII ARの方法でそれを実装する方法がわからない:関係としてアクティブなレコードfind()
を使用して
皆さん、これについて何か提案や意見がありますか?
SELECT
property.id,
property_lang.name,
max_people.total
FROM property
JOIN property_lang ON (property.id = property_lang.property_id AND property_lang.lang_id = 'hu')
JOIN (
SELECT
property_id AS id,
sum(max_people) AS total
FROM room
WHERE room.id NOT IN (
SELECT room_id
FROM booking
JOIN booking_status ON (booking.last_status_id = booking_status.id)
JOIN booking_room ON (booking.id = booking_room.id)
JOIN property ON booking.property_id = property.id
WHERE (booking_status.status > -1 OR booking_status.status IS NULL)
AND booking.check_in < '2017-10-18'
AND booking.check_out > '2017-10-14'
)
GROUP BY property_id
) max_people
ON max_people.id = property_id
ORDER BY property.id
私はコードをSQLビューに入れます。 –
はい、私はそれについて教えましたが、問題は私がそれらにパラメータを追加することができないビューであり、上記のクエリには2つのパラメータがあります:チェックイン(2017-10-14)とチェックアウト(2017- 10-18)。 dbビューにパラメータを渡すことはできません –
この場合、ビューの代わりに関数を使用できます(例:https://stackoverflow.com/questions/23421771/how-to-return-table-from-mysql - 機能) –