我创建了一个已正确填充的临时表,但现在我想根据临时表中包含的两个字段搜索另一个表。这些字段为Forename
和Surname
。但我想搜索多个学生姓名和数量并返回指定的数据!我认为这个问题将在下面的图片中得到更好的解释:
我的临时表
我要搜索的表格(表2)
一旦我搜索了每个学生姓名,我希望与学生Forename, Surname Address, Pin and Score
一起返回!
下面显示了我一直试图在没有运气的情况下实现这一目标!
Select TempTable.Forname, TempTable.Surmname, Table2.Address, Table2.Pin
from TempTable
Where Exists ( Select * from Table2
where Table2.Forname=TempTable.Forname and
Table2.Surname=TempTable.Surname
)
但它让我没有结果,我不知道为什么!
答案 0 :(得分:2)
如果我理解你的问题,那么这样做只是一个简单的连接:
select TempTable.Forename, TempTable.Surname, Table2.Address, Table2.Pin
from TempTable
inner join Table2 on Table2.Forename = TempTable.Forename and Table2.Surname = TempTable.Surname
虽然我建议您在“人员”表(表2)上使用主键,然后使用此主键引用TepTable上的记录
答案 1 :(得分:2)
EXISTS仅用于“过滤”结果,它的列在EXISTS之外不可用。
你需要加入!
Select TempTable.Forname, TempTable.Surmname, Table2.Address, Table2.Pin
from TempTable JOIN Table2 ON Table2.Forname=TempTable.Forname and Table2.Surname=TempTable.Surname;
答案 2 :(得分:1)
假设你确实调用了“Forname”列,你只需要一个简单的连接。这明确地与原始文本保持接近:
SELECT TempTable.Forname, TempTable.Surmname, Table2.Address, Table2.Pin
FROM TempTable tt, Table2 t2
WHERE tt.Forename = t2.Forename
AND tt.Surname = t2.Surname;
您可以对INNER JOIN
执行相同操作。
这都假设学生姓名是唯一的。