매칭 조인 관련 소스 질문드립니다.
본문
안녕하세요.
A와 B에 빈값들을 다른 테이블과 매칭하여 넣어주는걸 만들고 있습니다.
여러분들께 문의하고 나름 소스들 찾아서 여기까지는 했는데 더 이상 해결이 되지 않아 다시 한번 도움을 요청드립니다.
A의 빨간 박스는 B의 값을 매칭하여 찾아왔는데 B의 첫번째 데이터로만 동일하게 들어가는데 이부분 어떻게 처리해야 하는지요?
아래 소스는 이곳저곳에서 도움을 받아 맨땅에 나름대로 짜집기한거라 보시기에 많이 답답하시겠지만 부탁드려봅니다.
$sql = " SELECT *
FROM a1_match order by as_no ";
$result = sql_query($sql);
$sql = " SELECT meta_bs
FROM a1_match JOIN a1_meta
ON match_v = meta_br
WHERE match_v > '' ";
$join11 = sql_fetch($sql);
$sql = " SELECT meta_br
FROM a1_match JOIN a1_meta
ON match_w = meta_bs
WHERE match_w > '' ";
$join12 = sql_fetch($sql);
$sql = " SELECT asso_koscap
FROM a1_match JOIN a1_association
ON match_v = asso_komca
WHERE match_v > '' ";
$join21 = sql_fetch($sql);
$sql = " SELECT asso_komca
FROM a1_match JOIN a1_association
ON match_w = asso_koscap
WHERE match_w > '' ";
$join22 = sql_fetch($sql);
for($i=1; $row=sql_fetch_array($result); $i++) {
if ($row['match_w'] && $join12['meta_br'] > '') { $join_1 = " " . $join12['meta_br']; } else if ($row['match_w'] && $join12['meta_br'] < ' ' ) { $join_1 = " " . $join22['asso_komca']; } else { $join_1 = " " . $row[match_v]; }
if ($row['match_v'] && $join11['meta_bs'] > '') { $join_2 = $join11['meta_bs']; } else if ($row['match_v'] && $join11['meta_bs'] < ' ' ) { $join_2 = $join21['asso_koscap']; } else { $join_2 = $row[match_w]; }
$rows[] =
array(
$row[match_a],
$row[match_b],
$row[match_c],
$row[match_d],
$row[match_e],
$row[match_f],
$row[match_g],
$join_1,
$join_2,
print_address($row['mb_addr1'], $row['mb_addr2'], $row['mb_addr3'], $row['mb_zip1'])
);
}
답변 2
이건 디버깅 하려면 소스 정렬부터 다시 해야 되겟네요 ^^
근데 for 문에 안에 들어가는 내용이 위에서 한번만 했던 내용이라 이거 구조부터 바꿔야 되요
말그대로 님의 의도를 예측해서 짜야 되는 수준이네요
다른 방식으로 처리했습니다.
답변을 작성하시기 전에 로그인 해주세요.