表可以获取其他表列数据

时间:2016-07-26 06:26:36

标签: mysql sql tsql

我需要创建一个select语句,其中语句需要从其他表列数据中检索数据

例如。

   Table1              Table2 
   id                  id2
   age                 age2

从表1中选择id,年龄,其中id = id2

这可能吗?

3 个答案:

答案 0 :(得分:4)

您可以使用 INNER JOIN

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

DEMO using INNER JOIN

您可以使用 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中有三个条目。但是在这两个表之间只找到两个匹配的条目。这就是为什么输出只包含两行。

答案 1 :(得分:0)

是的,你可以。它被称为JOIN,有几种类型的JOIN。我建议你在SQL JOINs上阅读它们。

答案 2 :(得分:0)

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

OR

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

OR

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