-1
A
回答
1
通常情况下,你能避免IN
时你有一个以上的表参与
如果您有类似
SELECT name
FROM students s
WHERE student_id IN (SELECT student_id
FROM courses
WHERE course_id = 1
);
在这种情况下,你可以使用EXISTS
SELECT name
FROM students s
WHERE EXISTS (SELECT NULL
FROM courses c
WHERE c.student_id = s.student_id
AND c.course_id = 1
);
1
使用EXISTS语句。所以,你的查询将改成这样:
select stdId, stdName from students where exists(:stdsIds where stdId = students.stdId)
编辑:我不使用甲骨文,但我“觉得”语法将是这个样子:
select stdId, stdName from students where exists(:stdsIds = students.stdId)
相关问题
- 1. 避免在野牛连续运营商
- 2. 如何避免使用++和 - 运营商
- 3. ??运营商在SQL
- 4. 或运营商与三元运营商
- 5. SQL BETWEEN运营商
- 6. 避免运营商>>在空白处输入时出现
- 7. LIKE与运营商
- 8. PHPExcel与运营商
- 9. 与“ISIN”运营商
- 10. 奇怪的行为:SQL和运营商,在多个运营商
- 11. “和”与“&&”运营商在轨
- 12. SQL不能与所有运营商
- 13. SQL EXISTS运营商与GROUP BY
- 14. 运营商在python超载与运营商
- 15. SQL加入运营商IN
- 16. 使用蒙戈$切片运营商与其他运营商
- 17. 差异增量运营商的工作与&和运营商
- 18. 空 - 结合运营商和运营商&&
- 19. 运营商的情况下运营商
- 20. 的JavaScript +运营商VS - 运营商
- 21. 右联想与运营商:
- 22. 与运营商分解
- 23. 复制与像运营商
- 24. 与三元运营商
- 25. 问题与运营商&&
- 26. mysqli的与运营商
- 27. 与条件和运营商
- 28. 与运营商计算
- 29. 怀疑与Java运营商
- 30. 像运营商与NSpredicate
你想改变它 – Tom
我想你应该有这个标记为甲骨文而不是SQL Server – cBlaine
@cBlaine如果你看一下原来的编辑做什么,OP写“我目前正在使用SQL服务器。”我删除了[tag:oracle]。看起来他们希望将查询从Oracle转换为SQL Server。 – Kermit