我有三張桌子。我想從其中的兩個中選擇要顯示的列,但是在WHERE子句中我也想使用第三個表,例如
SELECT table1.colTABLE1, table2.colTABLE2,
FROM table1, table2
WHERE table3.colTABLE3 > 10000;
這意味著我想根據應用于第三個表的列的條件查看兩個表的列。
現在的問題是,如果我不在 FROM 子句中寫 table3,它會給我“無效識別符號”的錯誤。如果我在 FROM 子句中寫 table3,它會警告你沒有使用這個表(但我在 WHERE 子句中使用了 table3)。請幫助我。我真的很困惑。如何正確顯示它們而沒有錯誤或警告?
uj5u.com熱心網友回復:
如果您在FROM子句中使用表并且其列均未出現在SELECT子句中,則 Oracle 不會發出警告。這一定是由您使用的任何客戶端工具引起的。
您必須列出FROM子句中的所有表,但您還必須加入它們。畢竟,您不希望將所有行與來自and的所有行table1結合起來。table2table3
示例查詢可能如下所示:
SELECT table1.col1, table1.col2,
table2.col3, table2.col4
FROM table1
JOIN table2
ON table1.a = table2.b
JOIN table3
ON table1.x = table3.y
WHERE table3.col > 10000;
您將必須弄清楚連接條件是什么。它們通常由外鍵定義。
uj5u.com熱心網友回復:
如果將滑鼠懸停在table3表名上,該警告只會出現在 SQL Developer 作業表中,表名帶有下劃線表示可能存在問題。它不會影響查詢的執行,您可以忽略它。(它還說該表“未在 select 子句中使用”,這是真的;并不是說它根本沒有使用。)
如果您真的不想看到警告,那么您可以關閉“語意分析資訊提示”功能;從工具->首選項->代碼編輯器->完成洞察,取消選中“啟用語意分析資訊提示”復選框,然后單擊確定。
(至少在 SQL Developer 22.2 中,曲線不會立即消失;但如果您更改并恢復表名,它就不會再次出現。)
但這將洗掉所有這些提示,而不僅僅是這個特定的警告。
你也可以去Tools->Preferences->Code Editor->PL/SQL Syntax Colors,在串列中找到'Disconnected Join Graph'(顯然!?),然后取消勾選'Enable Highlight'。這將停止在表名下出現黃色波浪線,用于此和其他類似警告;但如果您將滑鼠懸停在表格名稱上,工具提示仍會出現。您只是沒有要查找訊息的視覺提示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/515073.html
