제목 | CI SQL JOIN 질문입니다!!!(난이도 하) 도와주세요 아침부터 이러고 있습니다ㅜㅠ | ||
---|---|---|---|
글쓴이 | 루비콘 | 작성시각 | 2016/01/20 18:58:24 |
|
|||
오전에 CI JOIN SQL 에 관련하여 질문을 드렸지만 추가적으로 질문드립니다.
우선 간단한 설명부터 드리겠습니다.
dgc_edu_trade_1_0 테이블 구조 (이하 A 라고 칭하겠습니다.)
dgc_edu_trade_1_0 테이블 내용
dgc_edu_trade_product 테이블 구조 (이하 B 라고 칭하겠습니다.)
dgc_edu_trade_product 테이블 내용
위에 보시는 바와 같이 2개의 테이블이 있습니다.
A 와 B 테이블을 조인시켜서 A 테이블이 가지고있는 모든 값과 B 테이블이 가지고 있는 product_name 이라는 값을 출력하고 싶은데 감을 못잡겠습니다.
참고로 A 테이블의 no(pk)와 B 테이블의 no(pk) 값은 전혀 상관 없는 값입니다. 그냥 다른 처리를 삭제라던가 검색이라던가 다른 처리를 해줄때 편하라고 no 값을 준것 뿐입니다.
어떻게 해야 두 테이블을 조인시켜서 제가 원하는 값을 뽑아낼 수 있을까요 (A 테이블의 모든값 과 B 테이블의 product_name 값)
*p.s $this->db->select("a.*","b.product_name"); $this->db->from("dgc_edu_trade_1_0 a"); $this->db->join("dgc_edu_trade_product b","b.no = a.no","left"); $this->db->where("a.no",$no); $result = $this->db->get()->result_array(); 아침에 배운대로 코드를 짜봤지만 돌아가진 않습니다. 그냥 참고정도로 하시면 좋을거 같습니다.
어떻게 코드를 짜야 정상적으로 작동할지 답변 남겨주셨으면 감사하겠습니다. 그럼 추운날씨 감기 안걸리게 조심하세요 감사합니다. |
|||
다음글 | td안에서 if문으로 날짜 비교하기 (3) | ||
이전글 | 조언점 부탁드립니다... 초보입니다ㅜㅜ (1) | ||
변종원(웅파)
/
2016/01/20 19:29:14 /
추천
0
스키마문서 또는 erd문서 없으세요?
추측해보면 a의 product_no와 b의 no를 하면 될 것 같네요.
조인은 연관이 있는 필드로 해야합니다.
|
루비콘
/
2016/01/20 19:51:32 /
추천
0
제가 하고자 하려 했던게 사용자와 관리자 페이지로 나눈후에 관리자 페이지에서 일정 항목을 등록할 수 있습니다 그게 B 테이블 입니다.
그리고 사용자 페이지는 문의 게시판인데 A 테이블을 사용합니다.
문의 게시판에서 사용자가 B 테이블에 있는 값들중 하나를 선택해서 입력을 하면 그게 상세 페이지에서 보이는 형식인데
관리자 페이지에서 만약에 기존에 있던 항목을 수정한다면 그값은 B 테이블에만 적용 되므로
사용자가 상세보기를 했을경우 만약 기존에 있던 B 테이브르이 값이 수정이 되었다면 수정이 된 항목으로 조인을 해서 보여주고 싶은 것인데
웅파님께서 말씀하신데로 했는데도 되질 않네여 ㅠㅠㅠㅠㅠ |
변종원(웅파)
/
2016/01/20 21:53:11 /
추천
0
그럼 구조를 잘못 만드신거죠.
join에 대해 다시 검색해서 보세요.
A 테이블의 특정 번호와 B 테이블의 특정 번호가 연관관계에 있어야 join을 해서 원하는 결과를 가져옵니다.
단순하게 A 테이블에 다 놔도 되는 것을 B 테이블로 나눠놨다고 생각하고 A-B를 똑같은 번호로 묶어주는 겁니다. 예를 들자면 A의 no가 기준이라면 B의 no가 아닌 A_no 라는 필드를 만들고 똑같은 번호가 들어가야 하는겁니다. A.no = 1 B.A_no = 1 이래야 a.no=B.A_no 라는 join 공식이 성립하는 겁니다.
구조를 다시 만드세요. |
변종원(웅파)
/
2016/01/20 21:53:26 /
추천
0
게시판 이동합니다. |
닉
/
2016/01/21 08:38:50 /
추천
0
@루비콘 AS가 빠졌는데요? |
닉
/
2016/01/21 08:40:00 /
추천
0
$this->db->select("a.*,b.product_name"); $this->db->from("dgc_edu_trade_1_0 AS a"); $this->db->join("dgc_edu_trade_product AS b","b.no = a.no","left"); $this->db->where("a.no",$no); $result = $this->db->get()->result_array(); php만 보자면 요런식으로 되야할 거같은데요... |
kaido
/
2016/01/21 08:48:37 /
추천
0
@닉
AS 는 빼도 동일 작동 합니다. 다만 유지보수 관리의 용이를 위해서 직관적으로 구분이 쉽게 AS를 넣으면 좋습니다.
|
루비콘
/
2016/01/21 09:02:40 /
추천
0
답변달아주신 분들 모두 감사합니다 조금더 공부하고 고민해봐야겠네요 ㅎㅎ
|
닉
/
2016/01/21 10:11:09 /
추천
0
@kaido 아 그렇군요.. 허접티 냈네요 ㅎㅎ |
루비콘
/
2016/01/21 10:12:22 /
추천
0
@닉 아니에요 답글 달아주신것만으로도 저는 감사하죠 ㅎㅎㅎ |