이는 SQL 질문 더를 가지고있는 기록을 찾아,하지만 난 레일에서이 문제를 해결하려고 : ALL 협회가 특정 값
은 내가User
사람
has_many :days
있습니다. 일수는
status
이며
이 가능합니다. 또는
이 예약되었습니다.입니다.
의 모든 사용자에게 사용 가능한 날짜는입니다. 내가 사용
User.includes(:days).where.not(days: { status: 'booked' }).references(:days)
생성 된 SQL 쿼리는 다음과 같습니다
SELECT * FROM "users" LEFT OUTER JOIN "days" ON "days"."user_id" = "users"."id" WHERE ("days"."status" != 'booked')
결과 상태의 두 종류가 사용자가 포함되어 있습니다. 이 문제를 해결하는 방법에 대해 감사드립니다.
레일에서 작업을 수행하는 방법을 모르고 있지만, 쿼리가 더 이렇게 될 필요가있다 : 레일 구문은 다음과 같습니다 NOT IN ID (일 WHERE 구별 USER_ID를 선택 WHERE'사용자 SELECT * FROM status = '예약 됨') ' – CptMisery
'이용 가능일 만있는 사람 '은 무엇을 의미합니까? 특정 날짜 (또는 일) 동안 사용 가능한 사용자 또는 예약 된 날짜가없는 사용자를 원하십니까? – max
@max 나는 모든 요일에 사용할 수있는 사용자를 찾으려고합니다. 나는 이것을'''.where (날짜 : from..too)''범위로 결합 할 것입니다. – Railsana