首頁 >資料庫 >mysql教程 >為什麼即使列存在,我的 SQL 查詢也會失敗並出現「列不存在」錯誤?

為什麼即使列存在,我的 SQL 查詢也會失敗並出現「列不存在」錯誤?

Linda Hamilton
Linda Hamilton原創
2025-01-13 08:11:42121瀏覽

Why Does My SQL Query Fail with a

SQL 查詢錯誤「列不存在」的檢查

執行 SQL 查詢時,可能會遇到「列不存在」的錯誤。當該列似乎存在於表的定義中時,這尤其令人費解。

範例場景

考慮以下查詢:

<code class="language-sql">select sim.id as idsim, 
       num.id as idnum 
from main_sim sim 
  left join main_number num on (FK_Numbers_id=num.id);</code>

此查詢嘗試根據 FK_Numbers_id 外鍵關係從兩個表 main_sim 和 main_number 中檢索資料。但是,執行查詢時,會收到以下錯誤:

<code>ERROR:  column "fk_numbers_id" does not exist</code>

使用指令 d main_sim 檢查表定義後,您會注意到該列存在,名稱為 FK_Numbers_id,而不是查詢中指定的 fk_numbers_id。

<code class="language-sql">dbMobile=# \d main_sim

...
FK_Numbers_id   | integer               | </code>

解釋

在這種情況下,由於表定義使用雙引號,因此列名稱區分大小寫。因此,查詢中的列引用也必須使用雙引號才能與列名稱的精確大小寫相符。

更正後的查詢

要解決此問題,請修改查詢如下:

<code class="language-sql">select sim.id as idsim, 
       num.id as idnum 
from main_sim sim 
  left join main_number num on ("FK_Numbers_id" = num.id);</code>

此更正後的查詢在 LEFT JOIN 子句中使用雙引號括起列名,確保與表定義正確匹配。透過調整列引用以符合列名稱的精確大小寫,查詢現在將成功執行。

以上是為什麼即使列存在,我的 SQL 查詢也會失敗並出現「列不存在」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn