본문 바로가기
MySql

MySQL 두 테이블에서 선택하는 MySQL

by 베이스 공부 2020. 9. 19.
반응형

누구든지 조인을 사용하지 않고 두 테이블에서 데이터를 선택하는 방법을 알려줄 수 있습니까?

이 같은:

SELECT t1.*, 
       t2.*
  FROM table1 t1, 
       table2 t2

필드가 같은 두 테이블이 있습니다. IE : table1 에는 2011 년의 데이터가 포함되고 table2 에는 2012 년의 데이터가 포함됩니다. 모두 가져오고 싶습니다.

원하는 결과 집합은 다음과 같이 생성 할 수 있습니다.

(SELECT tr.full_name,tr.headlines,tr.content,tr.stamp,tr.person_key 
 FROM tbl_transactions tr
 JOIN persons p ON p.person_key = tr.person_key 
 JOIN teams t ON (pp.membership_id = t.id and pp.membership_type = 'teams') 
 WHERE t.team_key = '') 
UNION 
(SELECT tr.full_name,tr.headlines,tr.content,tr.stamp,tr.person_key 
 FROM tbl_transactions_bk_2012 tr 
 JOIN persons p ON p.person_key = tr.person_key 
 JOIN teams t ON (pp.membership_id = t.id and pp.membership_type = 'teams') 
 WHERE t.team_key = '')

OP는 속도를 높이는 다른 방법이 있는지 확인하려고합니다 ( "이 쿼리 사이에 UNION 을 사용하려고 시도했지만 쿼리 속도는 0.1887 초가 걸렸습니다. 다소 느립니다.").

(@Jetoox : 이것이 귀하의 의도가 아니라면 질문을 수정하고 명확히하십시오).

 

해결 방법

 

WHERE 절에 조인 조건을 입력하십시오.

SELECT t1.*, t2.*
FROM table1 t1, table2 t2
WHERE t1.id = t2.t1_id

그러나 그것은 내부 조인입니다.

쿼리를 살펴보면 :이 특별한 경우에는 tbl_transactions tbl_transactions_bk_2012 사이에 관계가 없습니다 (즉, 두 테이블간에 관계가 없기 때문에 person_key에 결합하는 것은 의미가 없습니다. (말하자면) tbl_transactions와 사람이 관련되어 있습니다).

그런 다음 UNION 접근 방식을 사용해야합니다. JOIN 또는 FROM xx, yy WHERE xx.id = yy.id 를 사용하여 첫 번째 쿼리를 두 번째 쿼리에 조인하는 것은 의미가 없으며 결과를 제공하지 않습니다. 필요한 것.

그건 그렇고, 미래에 당신의 현재 질의 / 시도를 당신의 게시물에 넣으십시오-당신이 볼 수 있듯이 당신의 질문에 적절하지 않은 답변을 얻지 못하게 할 것입니다 (내 첫 번째 시도처럼).

 

참조 페이지 https://stackoverflow.com/questions/9460435

 

 

반응형

댓글