我有 2 個表之間的資料拆分,需要將必要的資料連接在一起進行分析。一張表Test 3 Output包含 ID 號和測驗的回傳值。另一個表Test Results包含相同的 ID,以及它們對應的序列號和總體測驗結果。
我需要將這些組合成一個只顯示 ID、序列號和測驗值的表。
提前為即將發生的可怕 SQL 感到抱歉,我對此很陌生。
我有 2 個作業查詢可以滿足我的需求,但我似乎無法將它們連接在一起。
第一個查詢:
select `ID`,`Serial Number` from `Test Results`t where (len(`Serial Number`)=16 and FailMode = '24V Supply FAIL')
這讓我得到了所有“24V 電源”失敗的測驗的 ID 和序列號。它還過濾掉垃圾序列號,因為正確的序列號應該有 16 位數字。
第二個查詢:
select `ID` from `Test 3 Output`o where o.`24V Supply (V)`<30
這讓我得到了 ID 和測驗結果,并過濾掉了一些大于 30V 的結果。請注意,'24V Supply(V) 是包含測驗結果的列的名稱。
現在,當我嘗試使用 ID 加入這些內容時,出現語法錯誤。這是我嘗試過的:
select `ID`,`Serial Number`
from `Test Results`t
where (len(`Serial Number`)=16 and FailMode = '24V Supply FAIL')
left join (`Test 3 Output`o ON t.`ID` = o.`ID` where o.`24V Supply (V)`<30)
這給出了錯誤:
Error: Syntax error (missing operator) in query expression (len(`Serial Number`)=16 and FailMode = '24V Supply FAIL') left join (`Test 3 Output`o ON t.`ID` = o.`ID` where o.`24V Supply (V)`<30)
我不確定我缺少哪個運算子,但我感覺它與有兩個 where 陳述句的事實有關?任何人都可以提供一些幫助嗎?
編輯:我找到了一種解決方法,因為我不能使用 2 where 子句進行連接。我用我的 2 個單獨的查詢創建了 2 個視圖,并對那些得到我想要的東西執行了連接。不過,我仍然想聽聽正確的做法:)
uj5u.com熱心網友回復:
您可以像這樣加入 2 個子查詢:
SELECT q1.a, q1.b, q2.c
FROM (
(SELECT a, b FROM table1
WHERE b > 10) AS q1
LEFT JOIN
(SELECT a, c FROM table2
WHERE c > 20) AS q2
ON q1.a = q2.a
)
將子查詢作為單獨的查詢物件進行除錯更容易,但查詢物件不斷堆積......
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/529810.html
標籤:sql毫秒访问
