[英]mysql left join with condition on table1
我想只使用mysql中第一個表的某些行進行左聯接。 目前,我正在執行以下操作:
SELECT students.* FROM students
LEFT JOIN courses
ON students.id = courses.id
WHERE students.id = 6
但是,在進行左聯接之前 ,mysql是否會首先從table1(學生)中選擇滿足學生的行。 如果沒有,有沒有辦法強制mysql這樣做呢? 謝謝。
是的,請嘗試以下操作:
SELECT students.* FROM students
LEFT JOIN courses
ON students.id = courses.id
HAVING students.id = 6
LIMIT 1
在我看來,您正在嘗試針對數據庫進行優化。 如果查詢不是很慢,並且您的測試數據集是生產數據庫的合理替代,那么出於多種原因,這樣做並不是最佳實踐。
話雖如此,(也許我不對,所以請忽略我)
我認為您試圖說:“如何通過限制數據庫在查詢過程中查看的行數來加快處理速度”
最好的方法是確保要查詢的表上的表上具有正確的索引。 索引非常快。 如果尚未為兩個表的.id字段建立索引,請將這些索引添加到數據庫中,這可能會解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.