테스트 사이트 - 개발 중인 베타 버전입니다

mysql 도움좀 주세요

mysql 도움좀 주세요 ㅠ.ㅠ

두개의 테이블이 있습니다. 

Userlist , User_class 

두개의 테이블의 공통 필드 UID(회원아이디) 

Userlist의 전체필드를 출력하면서

User_class 의 UID 가 매칭되는 chName 이 있어면 

Userlist의 전체필드를 출력하면서 Y 없으면 N 를 하려고 합니다.

이런 조건인데 .... 
제 짧은 지식으로는 어찌 해볼 도리가 없네요 .... ㅠㅠ 
Mysql 구문을 어찌 써야 할까요?

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 8개

http://sir.co.kr/bbs/board.php?bo_table=pg_tip&sca=MySQL ㅠㅠ
팁자료실에 질문을 올리기가 머해서요 그누질문도 아니고 어디 올릴데가 마땅치 않아 자게로 왔습니다.
http://sir.co.kr/bbs/board.php?bo_table=talk&sca=%EA%B0%9C%EB%B0%9C%EC%9E%90
ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ ㅈㅅ
설명을 구체화 할 필요가 있습니다.

우선 테이블의 공통필드 UID 가 있다고 하셨으니..

두개를 묶을 수 있습니다.

SELECT *
FROM Userlist A
LEFT JOIN User_class B ON A.UID = B.UID

여기까지 나오는군요..

이 다음 WHERE 절에서 조건이 들어간다고 하셨으니 이 다음부터는 IF 문을 조건절에 넣으시면 원하는값이 나옵니다.

이상입니다.

(아 IF 절은 MYSQL IF 절입니다)
덧붙이자면 'Userlist의 전체필드를 출력하면서 Y 없으면 N 를 하려고 합니다.' 이말이 전 이해가 잘 안되네요
Userlist의 전체필드를 출력하면서 [User_class 의 UID 가 매칭되는 chName 이 있어면 ] Y 없으면 N 를 하려고 합니다.' 이말입니다. 글재주가 없네요 제가
join 말고 그냥 직관적으로 하면 되죠.

SELECT * , IF( IFNULL( (
SELECT `chname`
FROM `User_class` `b`
WHERE `b`.`UID` = `a`.`UID`
LIMIT 0 , 1
), '' ) <> '', 'Y', 'N' ) `is_chName_regist`
FROM `Userlist` `a`
SELECT
*,
CASE WHEN B.UID IS NOT NULL THEN 'Y' ELSE 'N' END use_yn
FROM Userlist A
LEFT JOIN User_class B
ON A.UID = B.UID

이정두 쿼리문이면 되겠네요 ㅎㅎ
LEFT JOIN 일 경우 포함되지 않을 경우 NULL 값입니다.
그것을 이용해서 NULL이 있다면 N 있다면 Y가 되겠죠

게시글 목록

번호 제목
32071
32070
18535
5369
27088
5364
32069
32068
18521
5359
18520
32067
32066
27081
18514
5355
5354
5350
32065
18510
18503
32064
32063
18502
18499
18495
5345
27079
30718
18494
18493
5343
18491
18489
18487
18486
18484
18482
32062
26476
18481
5339
18480
18476
27137
30711
18475
18474
18470
32061
18469
32060
5335
32059
5333
32058
32057
30705
5326
18466
18462
18461
31504
30696
32056
5321
18456
18455
32055
5315
5310
27072
32054
27066
18453
30692
30690
18451
18450
18449
5307
32051
18448
18447
18441
18437
18429
32049
30686
5299
5289
30677
32042
18426
18422
18420
18418
5285
5282
26459