2010-02-24 5 views
1

나는 뉴스 정보를 게시하는 두 개의 웹 사이트를 운영하고 있습니다. 방금 두 사이트의 혼합 된 결과를 보여주는 사이트 중 하나에 대해 하나의 페이지를 만들도록 요청했습니다. 그들은 동일한 서버에 있고 테이블은 거의 동일하지만 두 쿼리를 결합하는 방법을 알아내는 데 문제가 있습니다. 게시물을 모두 날짜순으로 정렬하고 제목을 정렬해야합니다. 인수를 위해서MySQL을 사용하여 단일 쿼리에서 두 개의 다른 데이터베이스를 쿼리하려면 어떻게합니까?

는 테이블의 단순화 된 형태는 DB 1, 표 Clips1 (PK_ID, DateToShow, 제목, 설명)

DB 2, 표 Clips2 (PK_ID, DateToShow, 제목, 설명

입니다)

그래서 단일 쿼리는 두 데이터베이스 (사용자 이름과 암호가 현재 다름) 또는 두 개의 쿼리와 날짜와 제목을 정렬하는 일종의 조합을 공격합니다.

+0

사이트가 다른 이유는 스페인어가 하나이고 영어가 하나인데 두 가지 완전히 다른 사이트 (대부분의 콘텐츠가 완전히 다른 사이트)를 원했기 때문입니다. 그러나 요청은 영어 콘텐츠를 게시하는 것입니다. 뿐만 아니라 스페인어 버전에 더 많은 콘텐츠를 추가 할 수 있습니다. 단순한 결합으로 처리 할 수 ​​없다면 두 사이트 모두에 데이터베이스 레코드를 게시하도록 영어 사이트의 관리자를 수정해야하므로 걱정 스럽습니다. – RiddlerDev

+0

죄송합니다! 이미 투표를 한 것으로 알고 있습니다. – RiddlerDev

답변

1

IF 당신은 쿼리에 대해 단일 연결을 사용할 수 있습니다. 그것은 간단합니다.

스키마가 동일한 서버에 있다고 말하면 적절한 사용 권한이 있으면 문제가되지 않습니다.

이에 대한 일반 구문은 다음과 같습니다

SELECT schemaA.table.column 
FROM schemaA.table 
UNION 
SELECT schemaB.table.column 
FROM schemaB.table 

당신도, 단지 모든 테이블과 필드 참조에 대한 적절한 스키마를 지정하는 조인을 기억 할 수 있습니다.

+0

서버를 완전히 제어 할 수 있으므로 두 데이터베이스에 첨부 된 공동 사용자 이름/암호를 만드는 것만 큼 간단하다고 가정합니다. – RiddlerDev

+1

그렇게 할 수도 있고 기존 사용자에게 다른 DB에 대한 사용 권한을 부여 할 수도 있습니다. 예 : 'english_user '@'somehost ''english_pass''에 의해 식별 됨 – hobodave

+0

친애하는 hobodave .. 나는 나의 대답을 편집하고 있었고, 나의 대답을 편집 한 후에 돌아 왔을 때 .. u는 나에게 주었다. 부정적인 점 .. –

관련 문제