0
我試圖選擇1)位於地圖座標中的所有通知,以及2)沒有清單(因此commentrelationships表中沒有active_comment_relationship)。評論也是類通知。 我不能獲得SQL完全正確:LEFT JOIN查詢的Rails SQL語法
nelat = params[:NElatitude]
swlat = params[:SWlatitude]
nelng = params[:NElongitude]
swlng = params[:SWlongitude]
find_by_sql(" SELECT *
FROM notices
WHERE latitude < #{nelat}
AND latitude > #{swlat}
AND longitude < #{nelng}
AND longitude > #{swlng}
LEFT JOIN commentrelationships
ON notices.id = commentrelationships.commenter_id
WHERE commentrelationships.commenter_id IS NULL
LIMIT 50
; ")
notice.rb:
has_one :active_comment_relationship, class_name: "Commentrelationship",
foreign_key: "commenter_id",
dependent: :destroy
has_one :supernotice, through: :active_comment_relationship, source: :commentee
我已經嘗試過這種方式圓的,但它會產生一些非常奇怪的錯誤,我懷疑是因爲它返回與給定座標的評論,不是注意:
find_by_sql(" SELECT *
FROM notices
LEFT JOIN commentrelationships
ON notices.id = commentrelationships.commenter_id
WHERE commentrelationships.commenter_id IS NULL
AND latitude < #{nelat}
AND latitude > #{swlat}
AND longitude < #{nelng}
AND longitude > #{swlng}
LIMIT 50
; ")