LongTable
과 ShortTable
의 두 테이블이 있습니다. 예를 들어, LongTable
보이는 같은 :매우 큰 SQL 테이블에서 레코드의 서브 세트 선택
PersonA
1
2
내가 약 2.000 즉,이 테이블 정말 긴 점에 유의하시기 바랍니다 (A LongTable
에서 레코드를 선택하는 방법을 궁금해 :
personA | personB
1 | 2
1 | 3
2 | 4
2 | 5
3 | 4
3 | 5
3 | 6
4 | 5
4 | 6
및 ShortTable
다음과 같은 내용이있다 .000 행)의 레코드를 기반으로합니다 (ShortTable
). 그래서,이 특별한 경우에 대한 결과는 다음과 같아야합니다 ("테이블을 다시 열 수 없습니다 : 'ShortTable'"하지만 장애를 가진) :
personA | personB
1 | 2
1 | 3
2 | 4
2 | 5
나는 다음과 같은 쿼리를 시작
SELECT * FROM LongTable
WHERE
personA IN (SELECT * FROM ShortTable)
AND
personB IN (SELECT * FROM ShortTable)
코드 임시 테이블을 재생산하는 방법은 다음과 같습니다.
미리 알려 주셔서 감사합니다.
CREATE TABLE LongTable (
personA INT,
personB INT
);
INSERT INTO LongTable VALUES
(1,2),(1,3),(2,4),
(2,5),(3,4),(3,5),
(3,6),(4,5),(4,6);
CREATE TABLE ShortTable (
personA INT
);
INSERT INTO ShortTable VALUES
(1),(2);
왜 1과 2입니까? 사람 b는 2,3,4,5입니까? –
@ 존우 'longtable.PersonA' = 1, 2는'shorttable.PersonA'와 같습니다. –
오 다른 테이블에서 왔습니다 .grr는 그것을 보지 못했습니다. –