MySQL 查詢中混合使用 ANSI 1992 JOIN 語法和逗號導致錯誤的原因
在 MySQL 查詢中連接多個資料表時,請務必一致地使用 ANSI 1992 JOIN 語法或逗號分隔表示法。混合使用這兩種方法會導致錯誤,例如 "Unknown column 'm.id' in 'on clause'" 錯誤。
錯誤原因
在以下查詢中:
SELECT m.*, t.* FROM memebers as m, telephone as t INNER JOIN memeberFunctions as mf ON m.id = mf.memeber INNER JOIN mitgliedTelephone as mt ON m.id = mt.memeber WHERE mf.function = 32
此查詢嘗試混合使用逗號表示法(用於連接 m 和 t)和 ANSI 1992 JOIN 語法(用於連接 mf 和 mt)。根據 MySQL 文檔,這種方法不再受支援。逗號運算子的優先權現在低於 JOIN,導致操作數解釋錯誤。
解
要解決此問題,請一致地使用逗號表示法或 ANSI 1992 JOIN 語法。為提高清晰度和可靠性,建議使用 JOIN 語法:
SELECT m.*, t.* FROM memebers AS m JOIN telephone AS t ON m.id = t.id JOIN memeberFunctions AS mf ON m.id = mf.memeber AND mf.function = 32 JOIN mitgliedTelephone AS mt ON m.id = mt.memeber
注意事項
- 請注意,上述查詢在 m 和 t 之間執行笛卡爾積,這可能會導致資料集非常龐大。務必在查詢中包含適當的篩選條件。
- 如果使用逗號表示法,請確保指定所需的連接類型(例如,JOIN、LEFT JOIN、RIGHT JOIN)。否則,預設值為內部連接,這在某些情況下可能並非所需連接類型。
以上是為什麼在 MySQL 查詢中混合 ANSI 1992 連線和逗號會導致錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用MySQL的Alter Table語句修改表,包括添加/刪除列,重命名表/列以及更改列數據類型。

文章討論了為MySQL配置SSL/TLS加密,包括證書生成和驗證。主要問題是使用自簽名證書的安全含義。[角色計數:159]

文章討論了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比較了它們對初學者和高級用戶的功能和適合性。[159個字符]

本文討論了使用Drop Table語句在MySQL中放下表,並強調了預防措施和風險。它強調,沒有備份,該動作是不可逆轉的,詳細介紹了恢復方法和潛在的生產環境危害。

本文討論了在PostgreSQL,MySQL和MongoDB等各個數據庫中的JSON列上創建索引,以增強查詢性能。它解釋了索引特定的JSON路徑的語法和好處,並列出了支持的數據庫系統。

文章討論了使用準備好的語句,輸入驗證和強密碼策略確保針對SQL注入和蠻力攻擊的MySQL。(159個字符)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器