쿼리 : MY_TABLE 반환 ORA-00904 잘못된 식별자 FROM
SELECT COLUMN_NAME MY_TABLE에는 COLUMN_NAME 열이 없기 때문에, 지금까지 너무 좋아.
은 쿼리 : OTHER_TABLE FROM
SELECT * COLUMN_NAME IN이
이뿐만 아니라 그것은 실패하지 않습니다 (MY_TABLE로부터 COLUMN_NAME를 선택), 그것은 전체 OTHER_TABLE를 반환합니다. 내부 쿼리가 "외부"테이블에있는 열을 선택하는 경우에만 발생합니다.
동일한 쿼리를 실행하고 내부 쿼리 선택 열을 테이블에 존재하지 않지만 테이블에도 존재하지 않는 다른 열로 변경하면
SELECT * FROM OTHER_TABLE WHERE COLUMN_NAME IN (SELECT DIFFERENT_NAME FROM MY_TABLE)****** OTHER_TABLE에 DIFFERENT_NAME 열이 없습니다. ORA-00904에 잘못된 식별자가 있습니다.
1. 외부 쿼리에 존재하지만 내부 쿼리에없는 열을 사용하는 쿼리가 어떻게 실패하지 않습니까?
2. 어떻게 전체 테이블을 반환합니까?선택 * 테이블의 경우 열에서 (서브 쿼리) 여기서 서브 쿼리 리턴 ORA-00904
0
A
답변
0
in
절의 쿼리에서 "외부"테이블의 열을 사용할 수 있습니다. 외부 테이블의 각 행에 대해 해당 행의 값인 column_name
이 내부 테이블에서 선택됩니다 (리터럴 값을 선택한 경우와 유사). 외부 쿼리의 행과 동일한 값인이기 때문에 분명히 동일하므로 조건이 충족되고 행이 반환됩니다.
좋은 수비 연습 대신 뭔가를 반환하는 당신이 기대하지 않는 쿼리가 에러 출력 할 수 있도록 완벽하게, 당신은 (바람직 테이블 별칭을 사용) 쿼리하고있는 열을 자격을하는 것입니다
SELECT *
FROM other_table ot
WHERE ot.column_name IN (SELECT mt.column_name -- causes error!
FROM my_table mt)
0
우리는 두 개의 테이블이 있다고 가정 해 보겠습니다 필드 B
필드 A
와 TA
및 TB
을, 지금의 몇 가지 쿼리를 작성하자
select A -- wrong: TB doesn't have A field
from TB
하지만이 사람은 OK 될 것입니다 전체 TB
테이블 B
필드가 null는 아니고, TA
이 비어 있지 않은지 제공 반환 : 당신이
where B in (select B from TA)
가 동일 할 수있다이 경우
select *
from TB
where B in (select B -- <- B is from TB in both cases
from TA)
-- 1. null in (...) is null, not true
-- 2. we have not empty TA
where (B is not null) and Exists (select 1 from TA)
그리고 마지막으로
select *
from TB
where B in (select C -- wrong: there's no field C in TB as well as in TA
from TA)
관련 문제
- 1. 서브 선택 쿼리 작성
- 2. 선택 내에서 서브 쿼리
- 3. 레일 서브 선택 쿼리
- 4. 서브 쿼리
- 5. 조인 테이블의 HQL 서브 쿼리
- 6. MySQL 도움말 선택; 서브 쿼리?
- 7. MySQL의 서브 쿼리는 서브 쿼리
- 8. 선택 항목의 Oracle 서브 쿼리
- 9. 서브 쿼리가없는 SQL 쿼리 다시 작성 (서브 쿼리가있는 서브 쿼리)
- 10. 서브 쿼리
- 11. 서브 쿼리 추가 사용
- 12. 질문 : MySQL은 서브 쿼리
- 13. 기준 계산 + 서브 쿼리
- 14. Grails의 서브 쿼리
- 15. MySQL의 쿼리 조인과 서브 쿼리
- 16. Linq2Sql : 쿼리 - 서브 쿼리 최적화
- 17. 다중 쿼리 서브 쿼리 가입
- 18. 하이브 서브 쿼리 쿼리 최적화
- 19. SQLAlchemy의 서브 쿼리 비교
- 20. 쿼리 서브 타입을 통해
- 21. Linq는 쿼리는 서브 쿼리
- 22. 서브 쿼리 내의 sql에 존재하는 경우
- 23. MySQL의 서브 쿼리 질문
- 24. MySQL의 서브 쿼리/
- 25. 조인/서브 쿼리 딜레마
- 26. 새로운 SQL - 서브 쿼리
- 27. MySQL 리펙터가 조인으로 서브 쿼리 선택
- 28. 중첩 된 서브 쿼리 조합에서 선택
- 29. 선택 필드의 평균을 계산하는 MySQL 서브 쿼리
- 30. 리턴 된 컬럼으로 서브 선택 사용