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

mysql 도움좀 주세요

· 13년 전 · 1440 · 8
mysql 도움좀 주세요 ㅠ.ㅠ

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

Userlist , User_class 

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

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

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

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

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

댓글 작성

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

로그인하기

댓글 8개

13년 전
http://sir.co.kr/bbs/board.php?bo_table=pg_tip&sca=MySQL ㅠㅠ
팁자료실에 질문을 올리기가 머해서요 그누질문도 아니고 어디 올릴데가 마땅치 않아 자게로 왔습니다.
13년 전
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가 되겠죠

게시글 목록

번호 제목
28403
28402
28401
28398
28397
28394
4504
26593
4502
18132
28388
4496
4491
4486
4483
4482
4479
18122
18120
26590
18113
24419
4474
4465
4461
4460
4451
26589
퍼블리셔 이뻐요^^
4450
4448
24418
31037
26390
4446
26585
26581
26578
18098
4443
18097
26388
18094
30596
26387
18091
4445
18088
18086
18085
18082
18081
18078
18076
18074
18072
18070
18069
18066
18064
18057
18056
30588
18055
18054
30585
18051
18050
18048
18047
18044
26386
18042
30580
4425
18039
18037
18031
18028
18027
18022
18018
18016
18009
4423
18003
18000
17999
17996
17993
17989
17987
17986
17985
17984
4411
17979
30576
26383
17975
30569