CI 묻고 답하기

제목 두테이블에서 특정값만 들고 오고 싶습니다.
카테고리 CI 2, 3
글쓴이 릴리즈 작성시각 2017/03/24 15:34:45
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 14949   RSS

안녕하세요 코드이그나이터를 사용중에 있습니다.

A 테이블에는

Idx     1

Name Lin

Email email@email.com

Phone 000 0000 0000

 

이렇게 되어있고

 

B테이블에는 

 

Idx

Name   0

Email   1

Phone   1

 

이렇게 되어있습니다.

 

출력하고자 하는값이 B테이블의 같은 이름의 컬럼에서 1일 경우만 값을 출력하고 싶습니다.

위의 예라면 Email과 Phone만 출력하려 합니다.(email@email.com,000 0000 0000)

 

서로 다른 테이블에서 같은 컬럼중 특정 값만 들고 올려하면 어떻게 하면 좋을까요

 

조언 부탁드립니다.

 

 다음글 index 메소드 질문드립니다. (1)
 이전글 application 밖에서 ci사용질문입니다. (1)

댓글

kaido / 2017/03/24 16:21:12 / 추천 0

요약좀 하자면 join 으로 묶이지 않는 A와 B 테이블이 있고

Name 이 같은 테이블을 찾는다는 말씀 이신거죠?

 

SELECT * FROM table_a
WHERE NAME  IN(SELECT NAME FROM table_b)

 

릴리즈 / 2017/03/24 16:28:01 / 추천 0

아뇨 그렇다기 보단 

둘다 동일한 컬럼이 존재하고 A에는 상세값이, B에는 0과 1만 존재합니다.

출력값의 조건이 2개입니다.

A테이블과 B테이블의 Idx가 같은 상태에서 

B테이블의 컬럼중 1인 컬럼들(Name, Email,Phone)등등 을 A테이블에서 값을 조회해 출력하고 싶습니다

kaido / 2017/03/24 16:38:43 / 추천 0
SELECT  A.*
FROM table_a AS A
INNER JOIN table_a AS B ON A.idx = B.idx
WHERE B.email = 1 AND B.phone = 1

 

테이블 구조가 왜 그렇게 되어계신지 이해하기 힘들긴 합니다만.. 일단 idx가 동일 해야만 한다면 이런식으로 묶을수 있습니다.

묶지 않고 한다면

위에거 응용도 됩니다

SELECT * FROM table_a
WHERE idx IN(
    SELECT idx FROM table_b
    WHERE  name =1 and phone = 1
)

 

릴리즈 / 2017/03/24 18:27:25 / 추천 0
감사합니다 where in 을 깜빡하고 있었네요 덕분에 도움이 되었습니다