SQL在两个表中搜索结果

时间:2015-07-29 17:34:54

标签: mysql sql

我有这个返回1列表的查询。

select distinct id_usuario from preference where valor1=? and tipo like '%master%'

我需要检查返回的行是否在其他表中。并且只保留两个表中的记录。

如何仅使用基本的SQL sintax?

例如假设我的第一个查询返回:

12
99
16
13

现在我在列ColumnName上的表TableName中搜索这些结果,我只找到这些数字

99
16 
50

所以我只保留最终结果

99
16

3 个答案:

答案 0 :(得分:1)

使用common table expressions (CTE)创建临时可重用表并填充查询。 示例:

with cte as
(
    select distinct id_usuario as col1 from preference where valor1=? and tipo like '%master%'
)
select * from cte where col1 in (select ColumnName from tableName)

答案 1 :(得分:0)

select columnname from tablename 
where exists (
select distinct id_usuario 
from preference where valor1=? and tipo like '%master%')

您可以使用existsin来检查其他表中的ID。

答案 2 :(得分:-1)

SELECT columnName 
FROM table2 
WHERE columnName IN 
 (SELECT columnName FROM table1)