전혀 다른테이블의 값을 가져와서 출력하는 방법

전혀 다른테이블의 값을 가져와서 출력하는 방법

QA

전혀 다른테이블의 값을 가져와서 출력하는 방법

본문

Member 테이블

name 필드에 "홍길동,김감자.."

 

Info 테이블은

name 필드 "홍길동", age 필드 "30세", job 필드 "공무원"

name 필드 "김감자", age 필드 "40세", job 필드 "무직" ...


$sql = "select * from member";
$result = sql_query($sql);
 
foreach($result as $row){
    $sql2 = "select * from info where name= '{$row['name']}'";
    $result2 = sql_fetch($sql2);
이름: $row['name'];
나이 : $result2['age'];
}

 

이렇게 하니까 너무 속도가 느려지는데 좋은 방법이 없을까요?

 

 

이 질문에 댓글 쓰기 :

답변 5

사용하는 필드만 명시하면 좋습니다.

name에 인덱스 걸어주면 좋습니다.


$sql = "SELECT M.name, I.age FROM member AS M LEFT JOIN info AS I ON M.name=I.name";
$result = sql_query($sql);
foreach ($result as $row) {
    echo '이름 : ', $row['name'], '<br>';
    echo '나이 : ', $row['age'], '<br>';
}

- https://www.google.com/search?q=mysql+join


$sql = "select * from member a inner join info b where a.name=b.name";
$result = sql_query($sql);
foreach($result as $row){ ... }

어차피 지금 방식이 동명이인은 따로 생각안하시는거 같아서

위 코드 처럼 조인해서 하면 조금더 빨라질거라 봅니다.

$sql = "select * from member a inner join info b on (a.name=b.name) ";
답변을 작성하시기 전에 로그인 해주세요.
전체 138
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT