2012-02-18 2 views
0

ID가 1과 2 인 두 레코드를 선택하고 싶습니다. 기준 열에 하드 코드하면 SQL 쿼리를 통해 두 레코드가 나타납니다. 그러나 조건을 제거하고 WHERE 절을 사용하여 SQL에서 동일한 데이터를 선택하면 단 하나의 레코드 만 나타납니다. 다른 기록은 어떻게 된거야? 모든 필터가 꺼져 있습니다.ms 액세스 - 조건을 제거하고 테이블을 쿼리 할 때 데이터가 사라짐

WORKS :

ID

Criteria: 1 or 2 

SQL :

select * from mytable where mytable.id=1 or mytable.id= 2 
//2 records appear. Success. 

나던 WORK < 나는 이런 식으로 코딩 할 필요가있다 - 그러나.

ID

No Criteria: 

SQL :

select * from mytable where mytable.id=1 or mytable.id= 2 
//only record 1 appears. Failure. 

왜 제 2 회 기록이 표시되지 않는 이유는 무엇입니까?

+2

나는 당신의 질문을 이해할 수 없습니다 ... –

+0

그들은 정확히 같습니다. 상위 1 개는 2 개의 결과를 생성하지만 하위 1 개는 1 개의 결과를 생성합니다. 내 질문은 왜? 유일한 차이점은 테이블에서 criteria 필드를 제거한 것입니다. – tdjfdjdj

+1

실제로 테이블에서'SELECT '하려고합니까? 아니면'SELECT *'을 의미했을까요? – Borealid

답변

3

당신이 간단한 조건을 지적 등이 잘 작동과 같은 쿼리 빌더를 사용하여 쿼리를 빌드 할 때 여기에 문제가있다 : 당신이 쿼리 빌더에 이상 입력하면 그래서

1 or 2 

을, 당신이 볼이 당신은 SQL보기로 플립 경우

enter image description here

그러나, 당신이 액세스가 실제로 당신이 열 이름을 포함해야한다는 써 볼 수 있습니다 : 그것은 작업을 수행합니다.

[id] = 1 or [id] = 2 

그래서 당신이 열 이름을 포함해야합니다 :

enter image description here

예 : 당신이 필요합니다. 쿼리 작성기를 SQL보기 모드로 전환하면 다음과 같이 액세스 할 수 있습니다.

따라서 이러한 조건의 경우 직접 작성하거나 코드에서 열 이름을 포함시켜야합니다. 당신도 이것을 쓸 수 있다고 생각합니다 :

[id] in (1,2) 
+0

도움을 주셔서 감사하지만 테이블 이름을 추가 할 때 나는 여전히 같은 문제가 있습니다. 실제로 sql은 매번 테이블의 첫 번째 ID 만 찾습니다. BTW 나는 테이블 쿼리로 액세스 할 때 저장된 다중 조인 된 쿼리에서 데이터를 가져 오는 중입니다. 그것이 문제일까요? – tdjfdjdj