database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6742 게시물 읽기
No. 6742
and 조건 적용이 않되요...
작성자
김우성(babokws)
작성일
2013-10-01 23:19
조회수
7,356

select * from outd_1308 inner join parts on outd_1308.barcode=parts.barcode
 where outd_1308.gubun1 <> parts.gubun1
 or outd_1308.gubun2 <> parts.gubun2
 or outd_1308.gubun3 <> parts.gubun3
 and outd_1308.icomcode='01019'

outd_1308의 gubun1,gubun2,gubun3 중 parts의 gubun1,gubun2,gubun3이 하나라도 다른 01019의 것만 찾아라는 쿼리인데

'01019'의 조건은 적용되지않고

outd_1308의 gubun1,gubun2,gubun3 중 parts의 gubun1,gubun2,gubun3이 다른

전부다 출력이 됩니다.

'01019'의 것만 출력하려면 어떻게 해야되나요?

이 글에 대한 댓글이 총 3건 있습니다.

첫번째. and 가 or 보다 우선입니다.
  사용하신 구문은 1 or 2 or 3 and 4 인데
  원하시는건 (1 or 2 or 3) and 4 입니다.

  그러나...
  실행되는건 1 or 2 or (3 and 4) 입니다.
  or 절로 연결된 조건은 괄호로 묶어주셔야 합니다.


두번째. 조건절의 위치가 애매합니다.
  조인조건은 On 절에
  상수조건은 Where절에 사용하기를 권장합니다.


SELECT *
  FROM outd_1308
 INNER JOIN parts
    ON outd_1308.barcode = parts.barcode
   AND (outd_1308.gubun1 <> parts.gubun1 OR
        outd_1308.gubun2 <> parts.gubun2 OR
        outd_1308.gubun3 <> parts.gubun3 )
 WHERE outd_1308.icomcode = '01019'
;

마농(manon94)님이 2013-10-02 08:36에 작성한 댓글입니다.
이 댓글은 2013-10-02 08:46에 마지막으로 수정되었습니다.

오랫만에 놀러오신 마농님께 박수~~~ ㅋ

우욱님이 2013-10-02 09:27에 작성한 댓글입니다. Edit

아 넵...감솨드립니다...

김우성(babokws)님이 2013-10-02 17:23에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6745SQL 2005 -> SQL 2008 [2]
박아무개
2013-10-10
7830
674464bit SQL Server 로 컨버트 [1]
박아무개
2013-10-10
7102
6743최근 매출액 조회 [4]
초봉이
2013-10-07
7202
6742and 조건 적용이 않되요... [3]
김우성
2013-10-01
7356
6741tree 구조 sorting 관련 질문드립니다. [4]
내아음벌집
2013-09-29
9360
6739두가지 계산식을 쿼리문으로 만들고 싶어요... [2]
김우성
2013-09-28
7674
6738테이블 A에 없는것 찾기와 없는것만 삭제할수 있는 쿼리좀 갈켜주세요... [2]
김우성
2013-09-27
7695
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다