2012-10-10 2 views
2

두 개의 서로 다른 테이블의 정보를 표시하는 페이지가 있는데 두 개의 쿼리가 있습니다. 이 두 테이블 간에는 관련 정보가 없습니다. 두 쿼리에 많은 정보가 포함될 수 있으므로 페이지 매김을 만들어야합니다. 그러나 두 개의 별도의 페이지 매김을 원하지 않습니다. 쿼리 1과 쿼리 2의 결과를 함께 포함하는 페이지 만 필요합니다.두 SQL 쿼리를 기반으로 페이지 매김을 만드는 방법은 무엇입니까? (PHP)

어떻게하면됩니까?

내가 가지고있는 유일한 아이디어는 두 쿼리의 모든 정보를 배열로 가져온 다음 배열을 하나로 결합한 다음 해당 배열을 기반으로 페이지 매김을 만드는 것입니다. 물론 리소스를 절약하는 데 도움이되지 않습니다.

답변

3

당신은 노조 사용할 수 있습니다 - 당신이 줄을합니다 표시하고 열을 때문에이 같은 일을해야 :

select 
    col1 col1_alias, 
    col2 col2_alias, 
    ... 
from 
    table1 
where 
    ... 

union 

select 
    col1, 
    col2, 
    ... 
from 
    table2 
where 
    ... 
order by col1_alias, col2_alias 
limit 10 

은 기본적으로 노동 조합이 함께 모든 데이터를 끌어와 order bylimit 것 전체 결과 집합에 적용하십시오.

열의 이름은 두 번째 선택에서 일치 할 필요는 없지만 order by의 첫 번째 선택에서 열 이름을 사용하거나 별칭을 만듭니다.이 별칭은 데이터 집합에 따라 더 읽기 쉽습니다.

관련 문제