2014-09-03 4 views
0

MySQL은/​​PHP에서 두 쿼리에 가입 :나는이 몇 가지 도움이 필요

if (count($categorias) > 0) { 
    for ($i = 0; $i < count($categorias); $i++) { 
     if ($i == 0) { 
      $query = "WHERE id_subcategoria = " . $categorias[$i] . " "; 
     } else { 
      $query .= " OR id_subcategoria = " . $categorias[$i] . " "; 
     } 
    } 
} else { 
    $query = ""; 
} 
if (!$sql = $db->sql_query("SELECT * FROM actividades $query ORDER BY id DESC LIMIT " . $pageLimit . "," . PAGE_PER_NO)) { 
    message_die("DS", TRUE); 
} 
$total = $db->sql_numrows($sql); 

if ($total != 0) { 
    while ($linha = $db->sql_fetchrow($sql)) { 
     $SqlEstado = $db->sql_query("SELECT * FROM tarifas WHERE id_actividade = " . $linha['id'] . " AND dia = '$data_min'"); 

먼저 나는 범주와 일치하고 나는 제품이 그 날에 예약 할 수 있는지 확인하기 위해 테이블 ​​"tarifas"로 이동하는 모든 제품을 얻을.

내 질문은 : 하나의 쿼리로 모두 수행 할 수 있습니까? 제품을 선택하고 테이블 "tarifas"에 규칙이있는 경우 해당 규칙을 가져옵니다.

명확하지 않은 경우 알려 주시면 다른 방법으로 문제를 드러내겠습니다. 정말 고심하고 있습니다.

+1

이 문제와 데이터베이스 스키마를 추가 : 여기

는 같은 문제로 사람을 도움이 경우 코드의 –

답변

0

예, id 열에 JOIN을 수행합니다. "tarifas"에 속하는 제품 만 원할 경우 INNER JOIN이 될 것입니다. "tarifas"에 없더라도 제품을 원하면 "LEAD JOIN TARIFAS ON ..."이 될 것입니다.

0

도움을 주셔서 감사합니다. 사용자 3038802!

if (!$sql = $db->sql_query("SELECT actividades.nome, actividades.id, actividades.dias, actividades.preco FROM actividades LEFT JOIN tarifas ON actividades.id = tarifas.id_actividade AND tarifas.dia = '$data_min' $query")) { 
    message_die("DS", TRUE); 
} 
관련 문제