MySQL:解決WHERE 子句中的「user_id」歧義
使用JOIN 操作從多個表至關重要:列引用屬於哪個表沒有歧義。當連接的表中存在同名欄位時,就會出現此問題,如下程式碼所示:
SELECT user.*, user_info.* FROM user INNER JOIN user_info ON user.user_id = user_info.user_id WHERE user_id=1
錯誤訊息「user_id in where Clause is ambigacy」表示資料庫無法決定哪個資料表的user_id欄位在WHERE 子句中引用。為了解決這個歧義,需要指定完整的表名和列名。
例如,要根據用戶表中的user_id 列過濾結果,程式碼應修改如下:
SELECT user.*, user_info.* FROM user INNER JOIN user_info ON user.user_id = user_info.user_id WHERE user.user_id=1
透過明確聲明“user.user_id”,消除了歧義,資料庫現在知道WHERE 子句引用了使用者表中的user_id 欄位。此修改可確保查詢傳回預期結果,沒有任何歧義。
以上是如何解決 MySQL WHERE 子句中的「user_id」歧義?的詳細內容。更多資訊請關注PHP中文網其他相關文章!