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

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가 되겠죠

게시글 목록

번호 제목
4405
17973
17969
30568
17965
17962
17959
17955
17953
17950
17947
4403
17944
17943
17941
17939
17935
17928
4391
17926
17923
17920
17917
26380
17916
30565
17910
17907
17905
30555
17904
30552
17901
17900
17898
30549
17895
26379
26378
26377
17893
17891
17888
17885
17883
17882
17861
17859
17857
4388
24413
4383
17849
17847
17845
17844
17839
17838
30548
17836
17833
17831
17827
17826
17823
17820
17818
24412
30547
17814
4377
30544
17813
17810
26373
17804
30543
17803
4370
17801
17796
26372
17794
30536
17791
4364
17789
30535
17788
30527
30525
30524
4358
30521
17781
26371
17776
4343
17772
17768