0
我有一個引用三個表的查詢。SQL加入查詢返回空
的表格如下所示:
FORM_FACTOR
FORM_FACTOR_ID | FORM_FACTOR_DESCRIPTION
AOF_ORDER_LINE_QUEUE
SO_LINE_NUMBER | FORM_FACTOR_ID
AOF_ORDER_PARTS
SERIAL_NUMBER | SO_LINE_NUMBER
想法是使用零件的SERIAL_NUMBER
得到FORM_FACTOR_DESCRIPTION
。我寫了一個查詢來做到這一點,但無論出於何種原因,它都返回null。我可以發誓這個查詢正在工作,但顯然有一個缺陷。幫助表示讚賞。
查詢:
DECLARE @serial VARCHAR(50)
SET @serial = 'somestring'
SELECT
ff.[FORM_FACTOR_DESCRIPTION]
FROM
[dbo].[FORM_FACTOR] AS ff
JOIN
[dbo].[AOF_ORDER_LINE_QUEUE] AS lQ ON ff.[FORM_FACTOR_ID] = lQ.[FORM_FACTOR_ID]
JOIN
[dbo].[AOF_ORDER_PARTS] AS oO ON oO.[SO_LINE_NUMBER] = lQ.[SO_LINE_NUMBER]
WHERE
oO.[SERIAL_NUMBER] = @serial
它可能沒有返回行,而不是'NULL'。最可能的原因是'WHERE'沒有匹配。接下來最有可能的原因是'JOIN's沒有匹配。 –
您是否錯過了第二行開頭的SET或SELECT命令?換句話說,SET @serial ='something'; –
在AOF_Order_parts中不存在@serial;或者它和so_Line_Number它關聯doens不存在於lq.form_factor_ID中,或者它確實存在,但是form_Facotr_ID dof不存在於ff中。這似乎是一個數據問題而不是查詢。 – xQbert