資料庫查詢經常需要從一個表中檢索在另一個表中缺少對應條目的資料。讓我們用一個例子來說明這一點:
場景:
我們有兩個表,“table1”和“table2”,其結構如下:
<code>table1 (id, name) table2 (id, name)</code>
目標:
我們的目標是從「table2」中提取「table1」中不存在的「name」值。
一個天真的方法可能是:
<code>SELECT name FROM table2 -- where name is not in table1</code>
不幸的是,這個 SQL 查詢不完整,不會產生預期的結果。
有效的解決方案:
正確的方法是使用LEFT JOIN
:
<code class="language-sql">SELECT t2.name FROM table2 t2 LEFT JOIN table1 t1 ON t1.name = t2.name WHERE t1.name IS NULL;</code>
說明:
LEFT JOIN
: 這可確保「table2」中的所有行都包含在結果集中,無論「table1」中的符合行為何。 WHERE
子句: 條件 WHERE t1.name IS NULL
過濾結果,僅保留「table2」中「table1」中沒有對應「名稱」的行。 這種LEFT JOIN
技術廣泛相容於各種資料庫系統,提供了一種強大的方法來識別表之間遺失的記錄。
以上是如何從一張表中選擇另一張表中不存在的記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!