-1
我有以下查詢:如何在Rails Active Record中實現AND子句?
select source_names.id as source_id, source_names.name as source_name, source_types.id as source_type_id,source_types.name type_name,event_sources.id
from source_names
left join source_types
on source_type_id = source_types.id
left join event_sources
on source_names.id = event_sources.source_id and event_id = 1
result = SourceName.joins('
LEFT JOIN source_types ON source_type_id = source_types.id
LEFT JOIN event_sources ON source_names.id = event_sources.source_id
').where('event_id =?',event_id).select('source_names.id as source_id, source_names.name as source_name, source_types.id as source_type_id,source_types.name type_name,event_sources.id').all
產量:
select source_names.id as source_id, source_names.name as source_name, source_types.id as source_type_id,source_types.name type_name,event_sources.id
from source_names
left join source_types
on source_type_id = source_types.id
left join event_sources
on source_names.id = event_sources.source_id WHERE event_id = 1
但我想and event_id = 1
你怎麼我做到了嗎?
@vee你能否解釋一下你在說什麼? – Volatil3 2015-03-03 03:01:09
示例:'SourceName.joins('LEFT JOIN event_sources ON source_names.id = event_sources.source_id AND event_sources.event_id = 1')...'。 – vee 2015-03-03 03:05:09
@vee它確實有效,但有幾個問題,1)如何傳遞event_id的參數化值? 2)它是否是'rails方式'來解決這個問題? – Volatil3 2015-03-03 03:08:14