2011-08-17 90 views
0

我遇到了SQL加入問題。我想在特定的ID號碼和特定的時間段內加入兩張表格,但我只是不斷收到返回的空集。我想得到的是ID號碼上的兩個表格之間的匹配,並且也按時間過濾,也稱爲「術語」。期限在我相信的ProcInfo表上。關於我在做什麼的任何想法都是錯誤的?SQL Join返回empy set

SELECT* 
    FROM tblPernfo INNER JOIN tblProcInfo ON tblProcInfo.eID=tblPernfo.eID 
    WHERE Term In ('1st Sum 2010') 
    ORDER BY Term; 
+0

表格的後部描述(帶數據類型) – ain

+0

如果您得到一個空集,很可能是因爲您的連接條件沒有匹配 –

+0

我不能看到你的查詢有什麼問題,請發佈更多詳細信息。 –

回答

3

首先

SELECT (specify columns here)  
FROM tblPernfo 
INNER JOIN tblProcInfo ON tblProcInfo.eID=tblPernfo.eID  
WHERE Term In ('1st Sum 2010')  
ORDER BY Term; 

是實踐很差使用select *。它會導致性能問題。

你爲什麼使用IN? =應該工作。

現在來看看爲什麼沒有記錄返回。這是一個簡單的數據集,所以只有一個聯合的可能性。首先是tblProcInfo中沒有與tblPernfo中的記錄相匹配的記錄。您可以通過運行沒有where子句的語句來確認或排除這種可能性。

SELECT (specify columns here)  
FROM tblPernfo 
INNER JOIN tblProcInfo ON tblProcInfo.eID=tblPernfo.eID 

如果它返回記錄,where子句是問題,如果它沒有加入ins問題。下次運行這個(或替代tblProcInfo IDF即是包含期限列的表:

SELECT (specify columns here)  
FROM tblPernfo 
WHERE Term In ('1st Sum 2010')  

如果返回的數據和第一個查詢返回的記錄,那麼唯一的可能性左是有在第二個表中沒有記錄與第一個表匹配此特定值

+0

嗯謝謝你的幫助,我是新來的,對不起混淆! – jorblume

+0

嗯,當我運行第一個查詢時,它說eID可以引用FROM子句中列出的多個表,但是我們只列出了一個表? – jorblume

+0

別名與表名,這應該是一個習慣。 – HLGEM