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
운영게시판
최근게시물
MySQL Q&A 25787 게시물 읽기
No. 25787
주문 검색시에욥...
작성자
멤투멘
작성일
2006-09-01 15:18
조회수
1,137

A 테이블은 주문 리스트가 있습니다. (1 record)
B 테이블은 주문한 상품 리스트가 있습니다... (n record)

원하는 작업은..
A 테이블에서 상품명을 검색해 버렸을때...
B 테이블과 조인해서... 해당 상품명이 포함된 A 레코드를 추출해 오는것입니다..
A와 B는 주문번호(이하 ORDER_NUMBER)로 참조합니다....

두 테이블다 ORDER_NUMBER 는 인덱스로 잡혀있구요......
10만건이 넘는 레코드가 있을경우.. 효율적인 쿼리가 궁금하네요...

MySQL초보라.. 이래저래 해봤는데...
검색시 위에 말씀드린 1 record 가 나와야 하는데.. 자꾸 3~5개씩 나와버리네요...
부탁드려요.. ㅠㅠ

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

order_number 외에도 키가 하나 더 필요할듯하네요..
해당 상품명 (코드로 하시는게..) << 이게 필요할듯합니다.

select order_number from 주문리스트 a, 상품리스트 b
where a.order_number = b.order_number
   and a.상품코드 = b.상품코드

이상용(frokcode80)님이 2006-09-01 15:58에 작성한 댓글입니다.
mysql> create table jumun
    -> (
    -> seq int not null auto_increment primary key,
    -> order_number char(10) not null,
    -> index idx_jumun(order_number));
Query OK, 0 rows affected (0.02 sec)


mysql> create table sangpum(
    -> seq int not null auto_increment primary key,
    -> order_number char(10) not null,
    -> sangpum_name varchar(128) not null,
    -> index idx_sangpum(order_number));
Query OK, 0 rows affected (0.03 sec)


mysql> insert into jumun values('','ab12345678');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into jumun values('','ab12345678');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into sangpum values('','ab12345678','notebook');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into sangpum values('','ac12345678','hdd');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select b.sangpum_name,a.order_number from jumun a ,sangpum b where a.order_number=b.order_number;
+--------------+--------------+
| sangpum_name | order_number |
+--------------+--------------+
| notebook     | ab12345678   |
| hdd          | ac12345678   |
+--------------+--------------+
2 rows in set (0.00 sec)



mysql> select b.sangpum_name,a.order_number from jumun a ,sangpum b where a.order_number=b.order_number and a.order_number='ab12345678';
+--------------+--------------+
| sangpum_name | order_number |
+--------------+--------------+
| notebook     | ab12345678   |
+--------------+--------------+
1 row in set (0.00 sec)

warning은 NULL 대신에 ''를 넣어주어 그렇습니다.(mysql5.x라서..)
최대현(xroric)님이 2006-09-01 16:25에 작성한 댓글입니다.
이 댓글은 2006-09-01 16:27에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
25791최대값(MAX) 값들을 한번에 여러게 가져올 수 없을까여? [2]
SKT
2006-09-03
1445
25789최근 생일자 리스트를 뽑고 싶은데 ... 힘드네요 [2]
천유
2006-09-02
1874
25788ERWIN 에서 MySQL 모델링 할때 datatime 형이 없나요?
ersql
2006-09-02
1391
25787주문 검색시에욥... [2]
멤투멘
2006-09-01
1137
25786글자가 부분깨질때
전영복
2006-09-01
1275
25785limit에 대한 질문입니다. [1]
김경민
2006-08-31
2023
25784mysql 사용 가능한 메모리 제한 있는지요 [1]
dbman_kpt
2006-08-31
1599
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다