mysql 도움좀 주세요 정보
개발자 mysql 도움좀 주세요
본문
mysql 도움좀 주세요 ㅠ.ㅠ
두개의 테이블이 있습니다.
Userlist , User_class
두개의 테이블의 공통 필드 UID(회원아이디)
Userlist의 전체필드를 출력하면서
User_class 의 UID 가 매칭되는 chName 이 있어면
Userlist의 전체필드를 출력하면서 Y 없으면 N 를 하려고 합니다.
이런 조건인데 ....
제 짧은 지식으로는 어찌 해볼 도리가 없네요 .... ㅠㅠ
Mysql 구문을 어찌 써야 할까요?
추천
0
0
댓글 8개


팁자료실에 질문을 올리기가 머해서요 그누질문도 아니고 어디 올릴데가 마땅치 않아 자게로 왔습니다.

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 절입니다)
우선 테이블의 공통필드 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 * , 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가 되겠죠
*,
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가 되겠죠