SELECT * FROM jobs
WHERE(SELECT DISTINCT作業* FROM作業,job_requests WHERE(jobs.user_id = 1)OR (job_requests.user_id。 = 1 AND job_requests.job_id = jobs.id) )SQL查詢錯誤:操作數應包含在軌道1列(多個)
這個SQL給我:
Mysql::Error: Operand should contain 1 column(s).
如果我執行選擇從where子句它的工作原理
SELECT DISTINCT jobs.* FROM jobs, job_requests
WHERE (jobs.user_id = 1) OR
(job_requests.user_id = 1 AND job_requests.job_id = jobs.id)
有人可以解釋我爲什麼嗎?該查詢由rails activerecord生成,因此需要進行主選擇。
RoR的代碼:
has_many :my_jobs, :class_name=>"Job", :finder_sql =>
'SELECT DISTINCT jobs.* ' +
'FROM jobs, job_requests ' +
'WHERE (jobs.user_id = #{id}) OR ' +
'(job_requests.user_id = #{id} AND job_requests.job_id = jobs.id AND job_requests.request_status IN ("requested", "confirmed"))'
你能告訴RoR的代碼生成這樣的查詢? – klew 2010-03-12 19:40:05
是的,我也添加了ror代碼。基本上我想檢索用戶是所有者和他應用的工作(通過job_requests有工作)的工作,但我希望他們一起進一步篩選。 – dombesz 2010-03-13 00:57:52