MySQL 選擇另一個表中不存在的行
共享公共主表時取得表A 中存在但不存在於表B中的所有行鍵,有幾種方法可用,但效能影響各不相同。
使用具有NOT EXISTS 的子查詢:
使用NOT EXISTS 的子查詢的初始方法是可行的選項,但可能相對較慢,尤其是對於相對較慢,尤其是對於相對較慢較大的資料集。
使用左聯接:
如您所發現的,左聯可以執行得更快。在共用列上連接表 A 和表 B 時,表 A 中與表 B 中任何行都不匹配的行在連接列中將具有 NULL 值。過濾這些 NULL 值可以有效地隔離所需的行。
程式碼範例:
<code class="sql">SELECT * FROM A LEFT JOIN B ON A.x = B.y WHERE B.y IS NULL;</code>
其他提示:
總體結論:
雖然左連接方法通常優於子查詢方法,但最佳解決方案可能會有所不同,具體取決於具體的數據集和模式。建議進行實驗和性能測試,以確定每種情況下最有效的方法。
以上是如何有效地從一個表中選擇另一表中不存在的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!