我有这个返回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
答案 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%')
您可以使用exists
或in
来检查其他表中的ID。
答案 2 :(得分:-1)
SELECT columnName
FROM table2
WHERE columnName IN
(SELECT columnName FROM table1)