누구든지 조인을 사용하지 않고 두 테이블에서 데이터를 선택하는 방법을 알려줄 수 있습니까?
이 같은:
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
'MySql' 카테고리의 다른 글
MySQL PHP select the biggest `id` value from MySQL table (0) | 2020.09.19 |
---|---|
MySQL shuffle random MYSQL results (0) | 2020.09.19 |
MySQL 외래 키 제약 조건을 제공하도록 테이블 변경 (0) | 2020.09.19 |
MySQL 오류-SQLSTATE [42000] : 구문 오류 또는 액세스 위반 : 1064 (0) | 2020.09.19 |
MySQL PHP-SELECT WHERE id = array ()? (0) | 2020.09.19 |
댓글