2014-11-03 4 views
1

다음 쿼리를 사용하여 두 개의 다른 테이블에 URL이 저장된 페이지를 표시하고 있습니다. (사실, 곧 네 개 또는 5 개의 테이블에 가입해야합니다.) 물론num 쿼리에 데이터 추가하기

$sql = "SELECT SUM(num) as num FROM (
SELECT COUNT(URL) AS num FROM gw_geog WHERE URL = :MyURL 
UNION ALL 
SELECT COUNT(URL) AS num FROM gw_world_urls WHERE URL = :MyURL 
) AS X"; 
$stmt = $pdo->prepare($sql); 
$stmt->bindParam(':MyURL',$MyURL,PDO::PARAM_STR); 
$stmt->execute(); 
$Total = $stmt->fetch(); 

,이 쿼리는 0 반환 1, 2 등 난 그냥 궁금이 같은 추가 정보를 추출 할 수 있다면 질문.

예를 들어, gw_geog 테이블에서 파생 된 모든 페이지의 값이 $ MyKind = 'This'이고 테이블 gw_world_urls에서 파생 된 모든 페이지의 값은 $ MyKind = 'That'입니까?

표 gw_world에 1, 2, 3과 같은 다양한 값이있는 Rank라는 필드가 있다고 가정 해보십시오. 해당 테이블 (예 : 애리조나)에서 파생 된 URL의 순위가 2 인 행의 값 애리조나 | 2?

답변

1

확실하지 않습니다. 원하는 것을 이해합니다. 나는 당신이 x 테이블에 얼마나 많은 행을 가지고 있는지 계산하고 싶다고 생각한다. 그런 다음이 표의 특정 행 (예 : gw_world의 표 (예 : url = 애리조나))이 순위에 대한 특정 값을 가지는지 여부를 알고 싶습니다.

하나의 쿼리에서만 정말 필요합니까? 왜냐하면 당신은 많은 "sum"필드를 반복적으로 얻을 것입니다.

결과를 계산하려면이 쿼리를 만들고 각각의 순위가있는 모든 행을 얻으려면 다른 쿼리를 만들 수 있습니다.

+0

원래, 필자는 행 수를 계산하는 쿼리와 추가 정보를 가져 오는 두 번째 테이블을 제안했습니다. 그러나 프로젝트가 복잡 해짐에 따라 마지막 쿼리를 수행하는 데 필요한 일부 데이터를 가져 오기 위해 갑자기 중간 테이블을 만들어야했습니다. 그것은 큰 문제는 아니지만, 그냥 내 num 쿼리 에서이 간단한 정보를 얻을 수있는 방법이 있는지 궁금해. 그렇지 않다면 세 번째 테이블을 만들 수 있습니다. –

관련 문제