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

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

QA

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

답변 5

본문

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) ";
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
  • 질문이 없습니다.
전체 0
© SIRSOFT
현재 페이지 제일 처음으로