PHP로 스크립팅하고 MsSQL 데이터베이스를 사용하고 있습니다.mssql - 테이블 변수를 사용하는 방법/방법
내 스크립트는 제품 ID 목록을 반복합니다. 각 ID에 대해 제품 데이터의 오브젝트를 작성합니다. 제품 객체 내의 '우편 요금'필드의 경우 다른 쿼리를 수행하는 우편 요금 클래스를 호출합니다.
$products = $productsObj->getProducts($i, $limit);
foreach($products as $product)
{
echo $product['productName'] . '|';
echo $product['productDescription'] . '|';
echo $product['productPrice'] . '|';
$postage = $postageObj->getPostageCostforProduct(1, $product['weight'], $product['productPrice']);
echo $postage . '|';
}
많은 제품이있는 경우이 프로세스의 속도를 높이기 위해 '테이블 변수'를 사용할 수 있다고 들었습니다. 그러나 이것이 어떻게 도움이되는지, 어떻게 구현할 수 있는지 이해하기 위해 애 쓰고 있습니다. 우편 요금 클래스의 기존 우편 요금 쿼리를 테이블 변수 쿼리로 대체 할 수 있습니까? 그렇다면 정확히 어떻게 작동하고 서버로드에 도움이됩니까?
편집
쿼리하는 제품 ID의 목록을 얻을 수 있습니다 :
SELECT * FROM FROM products WHERE category='$this->cat'
나는 각 제품에 대한 그들 각각을 통해 루프를 만들고 객체입니다. 오브젝트의 제품을 데이터를 얻을 수있는 쿼리는 다음과 같습니다
SELECT Postage.postageName, Postage.Description AS postagedesc, Postage.id, Postage.qtyPer, Postage.pricePer, Postage.groupID, Groups.country_filter FROM Postage
LEFT OUTER JOIN Groups ON Postage.groupID = Groups.id
WHERE (Postage.minimumQty <= '$qty') AND (PostageRules.maximumQty >= '$qty')
(Postage.minPrice <= '$price') AND (Postage.maxPrice >= '$price')
, 나뿐만 아니라 귀하의 경우 테이블 변수에 대한 필요성을 실패합니다. 하지만 실제로 필요한 것은 우송료로 제품을 반환하는 단일 쿼리이므로 여러 개의 'getPostageCostforProduct' 요청을 실행하지 않아도됩니다. 필자는 PHP를 거의 안다. 그러나 서버 측에서 어떤 테이블이 관련되어 있는지, 구조가 무엇인지, 어떤 테이블의 열이 다른 테이블의 어느 열을 참조하는지에 대해 자세히 설명하면 SQL 쿼리를 통해 도움을 줄 수있다. 표. (아마도이 특정 조각에 사용 된 두 개의 SQL 쿼리를 게시 할 수도 있습니다.) –
정말 좋을 것입니다. SQL은 위에 추가되었습니다. – LeeTee
나는 솔직히 조금 혼란 스럽다. 마지막 코멘트에서 짐작할 수 있듯이, 여기서는 두 가지 쿼리 만 사용되었다는 인상을 받았습니다. 두 번째 쿼리는 코드에서 호출되는 것을 실제로 볼 수는 없지만, 당연히 PHP 자체에 대한 내 가난한 지식/이해가 될 수 있습니다. 나는 대답에 대한 나의 시도를했다. 그리고 만일 그것이 완전한 쓰레기라면, 나에게 알린다. –