所以我有一个从子查询返回的值列表,并希望从另一个表中选择与该子查询的值匹配的所有值。是否有一种特别的方式可以解决这个问题?
到目前为止,我已经尝试过:
select * from table where tableid = select * from table1 where tableid like '%this%'
答案 0 :(得分:1)
select * from table where tableid in(select tableid
from table1
where tableid like '%this%')
答案 1 :(得分:0)
select * from table where tableid IN
(select tableid from table1 where tableid like '%this%')
子查询需要返回您要求的内容。此外,如果结果超过1,则需要IN
而不是=
答案 2 :(得分:0)
这将有效
select * from table where tableid in
(select tableid from table1 where tableid like '%this%')
当子查询仅返回1条记录时, =
起作用
当子查询仅返回1个或多个记录时,in
起作用
答案 3 :(得分:0)
我正在阅读一本SQL Server书籍,并且为了提高速度和效率,它使用EXISTS
子句中的WHERE
语句强调了这一点。这是一个潜在的解决方案。
SELECT
*
FROM
tableName AS t
WHERE
EXISTS(
SELECT
1
FROM
table1 AS s --as in subtable or something like that
WHERE
t.tableid = s.tableid
AND
s.tableid like '%this%'
)