sql 질문좀 드려요
본문
<?php $sql = "select * from ".$g5['product_table']." where(1)";
$que = sql_query($sql);
print_r2($que);
while ($row = sql_fetch_array($que)) {
$sql2 = "select * from ".$g5['te_table']." where (1) and idx = '".$row['t_idx']."'";
te 테이블에는 idx 필드가 있고 product 테이블에는 t_idx가 있는데
select트 문에서 te 테이블에서 te 테이블의 idx 와 product 테이블의 t_idx가 같은 행값을 불러오라고 하는것 같은데 저렇게 할땐 join 을 써서 가져오는거 아닌가요?
여기서 이해가 안되는게 and와 $row 인데 이것좀 설명해주세요...
답변 3
while($row = sql_fetch_array($que))
$row 는 $que 쿼리문에 대한 while 반복문의 1행 값을 갖습니다.
$que 쿼리문이 만족할때까지 반복문은 실행이 됩니다.
(1) and
and 가 이 부분을 말씀 하시는 것 같은데요 (1) 은 아무러 역활을 못하는 거짓 쿼리문인데
일종에 php의 if 문을 좀더 편리하게 활용하기 위해서 선언된 것이구요
join 을 쓰는 것이 더 바람직한/효율적인 방법입니다.
※ https://sbumseo.tistory.com/84
$sql = "
select t_1.*, t_2.*
from {$g5['product_table']} as t_1
inner join {$g5['te_table']} as t_2 on t_1.t_idx = t_2.idx
";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
print_r2($row);
}
아 이걸거 햇갈리는수 있는데 (1) 이건 언제나 true ,
$row 결과행 객체입니다.
답변을 작성하시기 전에 로그인 해주세요.