Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL联接返回空集合_Sql_Ms Access_Ms Access 2007 - Fatal编程技术网

SQL联接返回空集合

SQL联接返回空集合,sql,ms-access,ms-access-2007,Sql,Ms Access,Ms Access 2007,我的SQL连接有问题。我想在一个特定的时间范围内,在一个特定的ID号上连接两个表,但我只是不断得到一个返回的空集。我想得到的是两个表之间ID号的匹配,并按时间进行过滤,也称为“术语”。我相信这个术语在ProcInfo表上。你知道我做错了什么吗 SELECT* FROM tblPernfo INNER JOIN tblProcInfo ON tblProcInfo.eID=tblPernfo.eID WHERE Term In ('1st Sum 2010') OR

我的SQL连接有问题。我想在一个特定的时间范围内,在一个特定的ID号上连接两个表,但我只是不断得到一个返回的空集。我想得到的是两个表之间ID号的匹配,并按时间进行过滤,也称为“术语”。我相信这个术语在ProcInfo表上。你知道我做错了什么吗

    SELECT*
    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子句就是问题,如果它不返回,则join将加入问题。下一步运行此(或替换tblProcInfo idf),它是包含术语列的表:

SELECT (specify columns here)     
FROM tblPernfo   
WHERE Term In ('1st Sum 2010')     
如果返回数据,第一个查询返回记录,那么剩下的唯一可能性是第二个表中没有与第一个表中的特定值匹配的记录。

first

使用select*(选择*)是非常糟糕的做法。它会导致性能问题

你为什么用IN?=应该有用

现在来了解为什么不返回任何记录。这是一个简单的数据集,因此只有几种可能。首先,tblProcInfo中没有与tblPernfo中的记录匹配的记录。您可以通过运行不带where子句的语句来确认或排除这种可能

SELECT (specify columns here)     
FROM tblPernfo 
INNER JOIN tblProcInfo ON tblProcInfo.eID=tblPernfo.eID   
如果它返回记录,则where子句是问题,如果它没有加入问题。接下来运行此(或替换tblProcInfo idf),它是包含术语列的表:

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

如果返回数据,第一个查询返回记录,那么剩下的唯一可能性是第二个表中没有与第一个表中的特定值匹配的记录。

使用数据类型发布表的说明。如果得到的是一个空集,则很可能是因为连接条件中没有匹配项。I无法看到您的查询有任何错误,请发布更多详细信息。@user28162:SELECT*是否输入错误?因为您需要
SELECT*
使用数据类型发布表的说明。如果您得到的是一个空集,很可能是因为您的联接条件没有匹配项。我看不出您的查询有任何错误,请发布更多详细信息。@user28162:SELECT*是打字错误吗?因为您需要
SELECT*
啊,谢谢您的帮助,我对这一点很陌生,很抱歉造成混淆!嗯,当我运行第一个查询时,它说eID可以引用FROM子句上列出的多个表,但我们只列出了一个表?用表名为它别名,这是sh这将是一种习惯。这解决了它,非常感谢!这是一个巨大的帮助,我非常感谢你。啊,谢谢你的帮助,我在这方面是新手,很抱歉混淆了!嗯,当我运行第一个查询时,它说eID可以引用FROM子句上列出的多个表,但我们只列出了一个表?用表名别名,这是应该是一种习惯。这解决了它,非常感谢!这是一个巨大的帮助,我非常感谢你。