2014-04-13 5 views
0

두 개의 쿼리가 있습니다. 두 쿼리를 실행하고 동일한 결과 개체에서 반환해야합니다. 예를 들어Codeigniter는 두 개의 결과를 결합합니다.

$query1 = "SELECT name,age from students"; 
$query2 = "SELECT name,age from users"; 
$result1 = $this->db->query($query1) 
$result2 = $this->db->query($query2) 
return result1 and result 2 together ; 

동일한 개체에서 두 쿼리의 결과를 모두 반환해야합니다. 나에게

도와주세요 실제 쿼리는 : 당신은 테이블 행이 속하는 레코드를 식별하려면

SELECT dev_members.name,dev_members.id,dev_members.age,dev_members.family_id,dev_family.house_name,dev_ib_account_registration.account_id FROM (dev_members) 
JOIN dev_family ON dev_family.id=dev_members.family_id 
JOIN dev_ib_account_registration ON dev_ib_account_registration.member_id=dev_members.id 
      UNION 
SELECT dev_members.name,dev_members.id,dev_members.age,dev_members.family_id, dev_family.house_name,dev_ib_sub_member_registration.account_id FROM (dev_members) 
JOIN dev_family ON dev_family.id=dev_members.family_id 
JOIN dev_ib_sub_member_registration ON dev_ib_sub_member_registration.member_id=dev_members.id 

답변

1

당신은 UNION

$query = "SELECT name,age from students 
      UNION 
      SELECT name,age from users"; 
$result = $this->db->query($query); 

또는를 사용하여 다음

$query = "SELECT name,age, 'students ' AS `table_type` from students 
      UNION 
      SELECT name,age, 'users' AS `table_type` from users"; 
$result = $this->db->query($query); 
+0

예제 쿼리를 제공합니다. 질문을 편집하여 실제 쿼리를 추가합니다. – user3387036

+0

@ user3387036 쿼리에서 union을 사용하면 동일한 개체에있는 두 테이블의 모든 레코드가 생성됩니다. 그에 따라 질문을 업데이트해야합니다. –

0
$query = "SELECT name,age from students UNION ALL SELECT name,age from users"; 

당신은 당신의 쿼리

SELECT dev_members.name,dev_members.id,dev_members.age,dev_members.family_id,dev_family.house_name,dev_ib_account_registration.account_id FROM (dev_members) 
JOIN dev_family ON dev_family.id=dev_members.family_id 
JOIN dev_ib_account_registration ON dev_ib_account_registration.member_id=dev_members.id 
      UNION ALL 
SELECT dev_members.name,dev_members.id,dev_members.age,dev_members.family_id, dev_family.house_name,dev_ib_sub_member_registration.account_id FROM (dev_members) 
JOIN dev_family ON dev_family.id=dev_members.family_id 
JOIN dev_ib_sub_member_registration ON dev_ib_sub_member_registration.member_id=dev_members.id 

UNION은 UNION ALL은 중복을 유지하면서 설정 최종 결과에서 행을 반복 제거에 UNION ALL 대신 UNION을 사용할 필요가있다.

1

당신은 그것을 요청하기 전에 질문을 검색 할 수 있습니다 ..

Here는 대답에 이미 같은 질문이다.

+0

I 그 해결책을 시도했지만 작동하지 않습니다 – user3387036

+0

흠 ... echo '

'; print_r($result1); print_r($result2); echo '
'; – Toly

관련 문제