我有这样的查询,我想返回IN情况下具有匹配行数的所有值。
从用户ID为(175,75)的用户中选择ID,名称,年龄;
返回
1 | john | 25
75 | Sam | 30
但是我想要的是
1 | john | 25
75 | Sam | 30
75 | Sam | 30
在SQL中可能发生这种情况吗?如果你们有解决方案,我将不胜感激。
谢谢
您可以改用join
:
select u.*
from (select 1 as id union all select 75 union all select 75) i join
users u
on u.id = i.id;
更简洁的格式使用values()
:
with i(id) as (
values (1), (75), (75)
)
select u.*
from i join
users u
on u.id = i.id;