簡體   English   中英

mysql在table1上退出條件連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM