MYSQL IN语句,包含来自另一个表的列值

时间:2013-11-30 22:47:44

标签: mysql sql

我想从一个表中获取特定列值,并使用这些值从另一个表中获取信息。

我将使用此示例:table1和table2都包含具有“name”列的行。

我想从table1会议条件中选择所有“name”列的值,然后从table2中选择包含从table1中选择的任何名称的行。基本思路如下。

SELECT `name` FROM table1 WHERE...
SELECT `name` FROM table2 WHERE `name` IN(names from the above query)

希望这很清楚,谢谢。

2 个答案:

答案 0 :(得分:1)

在第二个问题中“注入”您的第一个查询:

SELECT name FROM table2 WHERE name IN(SELECT name FROM table1 WHERE...)

答案 1 :(得分:0)

除了KayKay的回答,您还可以使用EXISTS:

SELECT name FROM table2 t2
WHERE EXISTS( SELECT 1
              FROM table t1
              WHERE t2.name = t1.name)