테이블 조인 도와주세요
본문
안녕하세요. 항상 감사합니다.
현재 두 테이블에서 몇몇 필드 데이터 값이 동일한 필드를 조인해서 그 테이블의 특정 필드를 표시해주려고 합니다. 예를 들어서
A 테이블의 a 필드, b 필드, c 필드 데이터 값과
B 테이블의 a 필드, b 필드, c 필드 데이터 값이 같으면 d 필드의 데이터 값을 화면에 표시해주는 겁니다.
쿼리문은 이렇게 해주었는데 아닌 거 같아서 chatGPT 에게 물어봐도 제대로 대답을 못 하기도 하고 그누보드에는 코드가 조금 다른거 같더라고요 <?= row['client'] ?> 이렇게 표시하는게 아니라 $view['client'] 이렇게 표시하는거 같아서요. 제 코드는 아래와 같습니다.
<?php
$sql = "SELECT client FROM g5_write_real_estate_customer
WHERE (g5_write_real_estate.type_of_sale = type_of_acquisition AND g5_write_real_estate.transaction_type = transaction_type AND g5_write_real_estate.sido = sido AND g5_write_real_estate.lot_area_pyeong = lot_area_pyeong)";
$result = sql_query($sql);
?>
<table class="table">
<thead>
<tr>
<th scope="col"></th>
<th scope="col">고객명</th>
</tr>
</thead>
<tbody>
<?php
// 결과가 있을 경우 테이블에 고객명을 출력
if (sql_num_rows($result) > 0) {
while ($row = sql_fetch_array($result)) {
?>
<tr>
<td></td>
<td><?= $row['client'] ?></td>
</tr>
<?php
}
} else {
// 결과가 없는 경우 테이블에 메시지를 출력
?>
<tr>
<td colspan="2">고객 정보가 없습니다.</td>
</tr>
<?php
}
?>
</tbody>
</table>
답변 3
$sql = "SELECT client FROM g5_write_real_estate_customer as c, g5_write_real_estate as e
WHERE
e.type_of_sale = c.type_of_acquisition AND e.transaction_type = c.transaction_type AND e.sido = c.sido AND e.lot_area_pyeong = c.lot_area_pyeong"
이렇게 하시면 됩니다.
!-->
LEFT JOIN 을 써도 됩니다.
$sql = "SELECT t1.client FROM g5_write_real_estate_customer as t1 LEFT JOIN g5_write_real_estate as t2 ON
t1.type_of_sale = t2.type_of_acquisition AND t1.transaction_type = t2.transaction_type AND t1.sido = t2.sido AND t1.lot_area_pyeong = t2.lot_area_pyeong" WHERE t2.id IS NOT NULL
특정 필드만 조회 하실거면 인라인서브쿼리를 사용 하셔도 됩니다.
$sql = "SELECT (select b_test from b where a.key = b.key)as b_test,(select c_test from c where a.key = c.key) FROM test
테스트 해보시고 적정하게 사용하시면 불로오고 싶은 데이터를 키위주로 조인하여 데이터를 컬럼 옆에 붙인다고 생각하시고 사용하시면 됩니다.