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 29863 게시물 읽기
No. 29863
게시물, 코멘트 2개 테이블로부터 특정 단어 검색 결과를 내는 쿼리
작성자
지앤미(znmee)
작성일
2010-12-08 01:23
조회수
8,298

 TABLE : A

------------------------
no: 고유번호
subj: 제목
cont: 본문
------------------------
 
TABLE : B
------------------------
uid: 고유번호
rel: 테이블 A 글의 고유번호(관련번호)
memo: 덧글
------------------------
 
위와 같이 2개의 테이블이 있습니다.
게시판은 아니지만, 게시판 형태라고 보시면 됩니다.
 
과제: A의 본문(cont) 또는 B의 덧글(memo)에 특정 단어가 포함되었는지 검색하여 결과를출력하는 1개의 mySQL query를 작성하라.
 
예: 'AS'라는 단어 검색시
① A의 본문(cont)에 'AS'가 있거나 '또는'
② B의 덧글에 'AS'가 있다면
③ A의 uid, subj 를 출력하도록
하면 됩니다.
 
####################################
#
# 문제는
# 덧글이 있는 게시물도, 없는 게시물도 있습니다.
# JOIN의 방법을 쓰니, 덧글이 없는 경우는 출력하지 않더군요.
# JOIN은 반드시 B 테이블에도 해당 덧글 데이터가 최소 1개 이상 있어야 하는 것 같네요.
#
####################################
 
오랜 시간 자료를 찾아보고 고민하다
가장 최선의 결과를 낸 것이 아래의 쿼리입니다.
 
SELECT no FROM A WHERE cont LIKE '%AS%'
UNION
SELECT rel FROM B WHERE memo LIKE '%AS%';
 
이렇게 하면
A 테이블의 본문, B테이블의 덧글에 'AS'가 포함된 A테이블의 고유번호 목록을 얻을 수 있습니다.
(목록'만' 얻을 수 있다는 게 또 문제입니다.)
 
검색결과가 이렇게 나왔으면 좋겠습니다.
 
no| subj
2 | 동해물과 (A 테이블 본문에 AS가 포함됨)
5 | 백두산이 (B 테이블 메모에 AS가 포함됨)
9 | 하느님이 (A 테이블의 본문에도 B 테이블의 메모에도 AS가 포함됨)
.
.
.
 
이런 저런 책을 뒤지다 보니
 
"왼쪽과 오른쪽 결과를 모두 가져오는 조인이
모든 데이터베이스에 있는 것은 아니지만 있고,
완전 외부 조인이라고 합니다. 하지만 MySQL, SQL Server, Access에는 없습니다."
 
라고 써 있어
MySQL로는 하나의 쿼리로 정말 불가능한지 알고 싶어
질문 올립니다.
[Top]
No.
제목
작성자
작성일
조회
29867MySQL 1135 에러.. [3]
도와주세요
2010-12-12
9195
29866MySQL 5.1 조합형 한글 Insert
동이
2010-12-10
8394
29865Replication에 대해서 질문드립니다. [3]
박정웅
2010-12-10
8007
29863게시물, 코멘트 2개 테이블로부터 특정 단어 검색 결과를 내는 쿼리
지앤미
2010-12-08
8298
29862MySql 메모리 설정에 관련 질문 입니다. [6]
염진근
2010-12-07
16133
29861mysql 간단한 질문! [1]
nmj
2010-12-07
7126
29859mysql 업로드 같은 값이면 하나만 남게... [1]
허점강
2010-12-03
7887
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다