[SQL] 내가 필요로 할 종류의 무엇에 합류?
SQL내가 필요로 할 종류의 무엇에 합류?
나는 표 테이블이 :
votes
-----------------
userid gameid
------- --------
a 1
a 2
a 3
b 1
b 2
그리고 게임 테이블 :
games
----------------
gameid title
------ ------
1 foo
2 bar
3 fizz
4 buzz
"[A가 게임에 투표 사용자] 여기서 게임에서 선택 *"나는 쿼리를 수행하기 위해 현물 어떤 조인을 사용 것인가?
나는 제프 설명서 다음 시도했다, 그러나 나는 예상 결과를받지 못했습니다.
해결법
-
==============================
1.당신은 INNER는 일반적인 게임 ID 필드 사이의 관계를 설정하는 조인을 사용 것;
당신은 INNER는 일반적인 게임 ID 필드 사이의 관계를 설정하는 조인을 사용 것;
select votes.userid, games.title from games inner join votes on (votes.gameid = game.gameid) where votes.userid = 'a'
-
==============================
2.이것은 당신에게 투표와 게임을 가져옵니다
이것은 당신에게 투표와 게임을 가져옵니다
SELECT g.title v.userid FROM games g INNER JOIN votes v ON g.gameid = v.gameid
이 투표하지 경우에도 모든 게임을 가져옵니다
SELECT g.title v.userid FROM games g LEFT JOIN votes v ON g.gameid = v.gameid
-
==============================
3.당신이 필요로하는 관계 연산자는 세 L 조인된다.
당신이 필요로하는 관계 연산자는 세 L 조인된다.
대부분의 SQL 제품은 명시 적 세 L 조인 연산자 또는 키워드 부족하다. 표준 SQL-92은 MATCH (하위 쿼리) 조건을 가지고 있지만 널리 (진정 관계형 언어 튜토리얼 D 키워드에게 그 세 L 조인 연산자에 대한 일치를 사용) 구현되지 않습니다.
물론 세 L 조인 캔 다른 SQL 술어를 사용하여 작성 될 수있다. 가장 일반적으로 볼 사용은 EXISTS 또는 IN (하위 쿼리).
데이터에 따라서는 SELECT DISTINCT..INNER이 조인을 사용하는 것이 가능하다. 그러나 귀하의 경우 경우 (게임 ID에 대한 중복 컬럼과 함께 열 목록에 추가되고 사용자 ID의 결과로 표 테이블을 통해 투사됩니다 당신이 FROM ... SELECT *를 사용하고 내부 조인 선택 지원을 당신의 SQL 제품, NATURAL JOIN을 사용) 중복 열 문제를 해결하고 당신이 너무 ON 절을 생략 할 것이라는 점을 의미 할 것입니다.
당신의 SQL 제품 지원을하고 다시 데이터 (특히, 두 테이블의 제목이 동일한 경우)>에 따라 경우 INTERSECT를 사용하면 다른 가능한 방법입니다
개인적으로, 나는이 조항은 작성된 코드에 더 가깝게 조인 때문에 세 L 조인하고, 예를 들어 조인 된 테이블을 통해 투사 발생하지 않습니다에 대한 SQL에서 사용하기 위해 존재 선호
SELECT * FROM games WHERE EXISTS ( SELECT * FROM votes AS v WHERE v.gameid = games.gameid AND v.userid = 'a' );
-
==============================
4.,처럼 제한적인 설명을 제공 같은데, 다음은 당신에게 사용자 A가 게임에 투표 게임의 목록을 얻을 것이다 :
,처럼 제한적인 설명을 제공 같은데, 다음은 당신에게 사용자 A가 게임에 투표 게임의 목록을 얻을 것이다 :
select g.gameid, g.title from games g inner join votes v on v.gameid = g.gameid where v.userid = 'a'
from https://stackoverflow.com/questions/7033748/what-kind-of-join-do-i-need by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 자기 무엇을 위해 가입한다? (영어로) (0) | 2020.04.22 |
---|---|
[SQL] 삽입 속으로 ... 병합 ... 선택 (SQL 서버) (0) | 2020.04.22 |
[SQL] SQL Server의 동적 피벗 테이블 (0) | 2020.04.22 |
[SQL] 어떤 장점이있다 : 자연 USING 절 대 가입 대 내부 가입? (0) | 2020.04.22 |
[SQL] 어떻게 데이터베이스에 같은 이름과 스키마하지만 다른 디렉토리에 텍스트 파일을 가져? (0) | 2020.04.22 |