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