2013-03-29 3 views
0

두 개의 다른 테이블을 푸시하는 방법은 같지만 동일한 구조로 모든 정보가 같고 테이블 이름이 다르다는 것을 의미합니다. mailingsmailings_archive. 하나 개의 테이블에 대한 그것이mysql은 동일한 구조를 가진 두 개의 서로 다른 테이블에서 선택하십시오.

$query = sprintf("SELECT * FROM %smailings WHERE hidden=0 AND draft=1 %sORDER BY category_id, mailing_segment", $this->dbprefix, $language); 

$this->mailings[] = array('id' => $row->id, 
             'mailing_naam' => $row->mailing_naam, 
             'mailing_subject' => $row->mailing_subject, 
             'mailing_from_name' => $row->mailing_from_name, 
             'mailing_bounceaddress' => $row->mailing_bounceaddress, 
             'mailing_body' => $row->mailing_body, 
             'mailing_status' => $row->mailing_status, 
             'mailing_segment' => $row->mailing_segment, 
             'mailing_total_subscribers' => $row->mailing_total_subscribers, 
             'mailing_total_sent' => $row->mailing_total_sent, 
             'category_id' => $row->category_id, 
             'utm_campaign' => $row->utm_campaign, 
             'language' => $row->language); 
     }      

가 지금은 다음과 같습니다 괜찮습니다, 어떻게,이 배열에서 다른 테이블의 데이터를 넣어? 잊지 마라. 모든 필드는 같고 테이블 이름이 다르다.

답변

4
(SELECT * FROM %smailings WHERE hidden=0 AND draft=1 %sORDER BY category_id, mailing_segment) 
UNION 
(SELECT * FROM another_table WHERE hidden=0 AND draft=1 %sORDER BY category_id, mailing_segment) 

(select * from table1) 
union 
(select * from table2) 

그러나 이것은 당신이 각 요청의 내부 "에 의해 순서를"하는 듯했으나하더라도, 하나 개의 정렬되지 않은 결과 세트가 발생합니다 아마 한 가장 빠른.

select * from table1 
union 
select * from table2 order by id 

두 개의 별도 주문 (추천 ... (8)를 갖고 싶어 : 당신이 테이블 사이에 주문한 모든 것을 가질 필요가있는 경우

는 (1 .... 8), 다음이 구문이다 하나 개의 테이블, 서로 1..4)에서 :

select * from 
(select * from test1 order by id asc) as t1 
union all 
(select * from test2 order by id asc); 
+0

고마워, 이건 좋은 대답이야. –

1

노조 방법을 사용 ..

시도 쿼리 : 선택 1 조합은 선택이

관련 문제