0
SQL에서 정확히 3 초가 걸리는 작업을 수행하고 싶습니다. 몇 시간 동안 고민하고 있습니다. 모든 레코드를로드하고 존재하지 않으면 참여하지 않으려 고합니다. 관련된 모델을주지 마라.레일스가 연관 및 ID에 합류합니다
"SELECT * FROM apartments LEFT JOIN comments ON apartments.id = comments.apartment_id AND comments.user_id = ?"
을 내가 apartment.comments를 호출 할 때, 그것은 나에게 특정 사용자에 딱 레코드 (하나가 될 수 있습니다), 모든주지 다음과 같이
내가 만들려는 쿼리입니다 모든 사용자에 대한 기록.
나는Apartment.joins("LEFT OUTER JOIN comments ON comments.apartment_id = apartments.id AND comments.user_id = #{user_id}")
을 시도하지만 apartments.comments를 호출 할 때 가능한 모든 의견을 돌려 다른 쿼리를 발생로는 작동하지 않습니다.
Apartment.includes(:comments).where("comments.user_id = ?", user_id)
도 특정 사용자의 의견이있는 아파트 만 반환하므로 제대로 작동하지 않습니다.
도움이 필요합니다.
코드에서 오류의 많은. table_name없이 'LEFT JOIN ON'이란 무엇입니까? 왜 테이블 이름이 다른가? : LEFT OUTER JOIN trip_items ON comments .'? – alex
당신이 정확하고 고정되어 있습니다. 붙여 넣기를 복사하고 이름을 변경하여 좀 더 이해하기 쉬워졌습니다. –