我有一個查詢,它使用一些左連接來取回數據。困境是我想要LIMIT
和ORDER BY
來自左連接之一的結果,因此限制了返回的總行數。MYSQL限制左連接查詢
我試圖訂購,並限制該表是table4
我的查詢:
SELECT SQL_CALC_FOUND_ROWS e.meta_1, a.requestid, b.clientid, c.job_description, d.forename
FROM quotations_request AS a
LEFT JOIN table1 AS b ON (a.assigned_to = b.userid)
LEFT JOIN table2 AS c ON (a.job_costing = c.jobid)
LEFT JOIN table3 AS d ON (a.clientid = d.clientid)
LEFT JOIN table4 AS e ON (e.quotationid = a.requestid)
WHERE a.archived = '0' AND (e.meta_1 = LCASE('requested'))
我曾嘗試:
SELECT SQL_CALC_FOUND_ROWS statuss.meta_1, a.requestid, b.clientid, c.job_description, d.forename,
FROM quotations_request AS a
LEFT JOIN table1 AS b ON (a.assigned_to = b.userid)
LEFT JOIN table2 AS c ON (a.job_costing = c.jobid)
LEFT JOIN table3 AS d ON (a.clientid = d.clientid)
LEFT JOIN (Select meta_1 from table4 where quotationid = a.requestid ORDER BY uploaded_date DESC LIMIT 0, 1)
as statuss ON (statuss.quotationid = a.requestid)
WHERE a.archived = '0' AND (statuss.meta_1 = LCASE('requested'))
結果:
嘗試上述後,我得到了一個錯誤說a.requestid
是在WHERE子句中未知(最後左連接)
並在子查詢中使用LIMIT似乎是合理的......那麼接下來發生了什麼? –
@TimBiegeleisen對不起,我應該添加(更新的問題),然後我結束了錯誤說「a.requestid」是未知的字段。請記住,a.requestid來自第二行的主表 –
第一段中描述的困境與阻止您的查詢運行的錯誤無關。給定第一個查詢中基於e.meta_l的謂詞,LEFT JOIN是非常低效的冗餘,應該是內連接。 – symcbean