一张表是否可以获取另一张表的列数据?

4

我需要创建一个选择语句,该语句需要从其他表的列数据中检索数据。

例如:

   Table1              Table2 
   id                  id2
   age                 age2

从表1中选择id和age,其中id=id2

这是否可能。


2
你可以使用内连接。 - 1000111
3个回答

4

您可以使用INNER JOIN

SELECT 
T1.id,
T1.age
FROM Table1 AS T1
INNER JOIN Table2 AS T2
ON T1.id = T2.id2

使用INNER JOIN的DEMO

你可以使用EXISTS

SELECT 
T1.id,
T1.age
FROM Table1 AS T1
WHERE EXISTS(
  SELECT 1 
  FROM Table2 AS T2
  WHERE T2.id2 = T1.id
);

您可以使用IN

SELECT 
T1.id,
T1.age
FROM Table1 AS T1
WHERE T1.id IN (SELECT T2.id2 FROM Table2 AS T2)

注意:

在工作演示中,输出由两行组成。在tabel1中有两个条目,在table2中有三个条目。但是在这两个表格之间只找到了两个匹配的条目。这就是为什么输出只包含两行的原因。


0

可以的。这被称为JOIN,有几种类型的JOIN。我建议你在SQL JOINs上阅读相关内容。


0
SELECT id ,age 
 FROM TABLE 1
WHERE id IN (SELECT id2 FROM TABLE2);

或者

SELECT id ,age 
 FROM TABLE1 , TABLE2
WHERE id = id2 ; 

或者

SELECT id ,age 
 FROM TABLE 1 , (SELECT id2 FROM TABLE2) TBL2
WHERE id = TBL2.id2 ;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接