如何从SQL中的两个不同表中选择值

时间:2012-01-16 14:54:39

标签: sql sql-server

我的SQL Server数据库中有两个表。第一个是Test1,第二个是Test2。两个表中都有一列RegNo

现在我想从两个表中为特定RegNo选择值。

这就是我正在做的事情

SELECT Test1.SurName, Test2.Class, Test2.Medium
FROM Test1,Test2 JOINS
Test2 ON Test1.RegNo = Test2.RegNo

但我的查询是错误的。

7 个答案:

答案 0 :(得分:8)

select
    Test1.SurName,
    Test2.Class,
    Test2.Medium
from Test1
inner join Test2
on Test1.RegNo = Test2.RegNo

如果您想为特定RegNo选择数据,只需在末尾添加WHERE子句,如下所示:

select
    Test1.SurName,
    Test2.Class,
    Test2.Medium
from Test1
inner join Test2
on Test1.RegNo = Test2.RegNo
where Test1.RegNo = 123456   -- or whatever value/datatype your RegNo is

答案 1 :(得分:6)

SELECT Test1.SurName, Test2.Class, Test2.Medium
FROM Test1 
INNER JOIN Test2 ON Test1.RegNo = Test2.RegNo

答案 2 :(得分:3)

SELECT Test1.SurName, Test2.Class, Test2.Medium
FROM Test1
INNER JOIN Test2
ON Test1.RegNo = Test2.RegNo

请参阅a visual explanation of joins这对学习联接非常有帮助。

答案 3 :(得分:1)

试试这个:

SELECT Test1.SurName, Test2.Class, Test2.Medium
FROM Test1 INNER JOIN Test2
ON Test1.RegNo = Test2.RegNo
WHERE Test1.RegNo = desired_id

答案 4 :(得分:1)

非常基本的问题,下次尝试谷歌,现在就这样:

SELECT Test1.SurName, Test2.Class, Test2.Medium
FROM Test1
inner join Test2 ON Test1.RegNo = Test2.RegNo

答案 5 :(得分:1)

这是您的更正查询。

SELECT Test1.SurName, Test2.Class, Test2.Medium
    FROM Test1 INNER JOIN Test2 ON Test1.RegNo = Test2.RegNo where  Test2.RegNo=Test1.RegNo;

您也可以通过提供RegNo来过滤查询,在您想要的哪个表上。

答案 6 :(得分:0)

如果您正在寻找没有联接和关系的敌人方法,这将达到目的。

select 
   (
   select s.state_name from state s where s.state_id=3
   ) statename,
   (
   select c.description from country c where c.id=5
   ) countryname
   from dual;   

其中dual是具有单列的虚拟表-只需使用表即可查看