[SQL] 선택 (2008 SQL 서버)에서 두 테이블을 결합
SQL선택 (2008 SQL 서버)에서 두 테이블을 결합
나는 예를 들어이 같은 두 개의 테이블이있는 경우 :
표 1 (제품)
id
name
price
agentid
표 2 (에이전트)
userid
name
email
어떻게 products.agentid = agent.userid 즉, 에이전트의 이름과 이메일을 포함 제품에서 결과 집합을받을 수 있나요?
어떻게 예를 들어 SELECT 가격 <100 가입합니까?
해결법
-
==============================
1.가격 필터를 지원하기 위해 편집
가격 필터를 지원하기 위해 편집
당신은 그 테이블을 조인하기 위해 INNER JOIN 절을 사용할 수 있습니다. 그것은 이런 식으로 이루어집니다 :
select p.id, p.name as ProductName, a.userid, a.name as AgentName from products p inner join agents a on a.userid = p.agentid where p.price < 100
이 작업을 수행하는 또 다른 방법은 WHERE 절입니다 :
select p.id, p.name as ProductName, a.userid, a.name as AgentName from products p, agents a where a.userid = p.agentid and p.price < 100
참고 두 번째 경우에 당신은 두 테이블에서 모든 행의 천연 제품을 한 후 그 결과를 필터링하고 있습니다. 같은 단계에 참여하면서 첫 번째 경우 직접 결과를 필터링하고 있습니다. DBMS에은 (관계없이이 문제를 해결하기 위해 선택하는 방법) 가장 빠른 방법으로 그것을 처리하는 당신의 의도를 이해할 것이다.
-
==============================
2.이것은 매우 초보적인 내부 조인입니다 :
이것은 매우 초보적인 내부 조인입니다 :
SELECT products.name AS productname, price, agent.name AS agentname email FROM products INNER JOIN agent ON products.agentid = agent.userid
나는 기본 구문과 개념을 가입 검토하는 것이 좋습니다. 당신이 위에있는 것은 표준 SQL로 매우 보편적이지만 여기에 마이크로 소프트의 문서에 대한 링크가 있습니다.
내부가 여기에 가입 것을 참고 모든 제품은 NULL이 아닌 관련 agentid을 가지고 가정합니다. 제품에 NULL의 agentid가있는 경우, 사용 LEFT OUTER없이 에이전트와도 제품을 반환하는 대신 가입하세요.
-
==============================
3.
select p.name productname, p.price, a.name as agent_name, a.email from products p inner join agent a on (a.userid = p.agentid)
-
==============================
4.이것은 도움이 Prod.Hope에 약간 큰 테이블 조인의 나입니다.
이것은 도움이 Prod.Hope에 약간 큰 테이블 조인의 나입니다.
SELECT TOP 1000 p.[id] ,p.[attributeId] ,p.[name] as PropertyName ,p.[description] ,p.[active], a.[appId], a.[activityId], a.[Name] as AttributeName FROM [XYZ.Gamification.V2B13.Full].[dbo].[ADM_attributeProperty] p Inner join [XYZ.Gamification.V2B13.Full].[dbo].[ADM_activityAttribute] a on a.id=p.attributeId where a.appId=23098;
-
==============================
5.
select ProductName=p.[name] , ProductPrice=p.price , AgentName=a.[name] , AgentEmail=a.email from products p inner join agent a on a.userid=p.agentid
from https://stackoverflow.com/questions/9304984/combine-two-tables-in-select-sql-server-2008 by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 문자열로 안전 SQL 문 만들기 (0) | 2020.06.14 |
---|---|
[SQL] SQLSRV 및 사용 PHP에서 저장 프로 시저를 실행하는 방법 "을?" 스타일의 매개 변수 (0) | 2020.06.14 |
[SQL] 오라클 - 업데이트에 가입 - 비 키 보존 테이블을 (0) | 2020.06.14 |
[SQL] 동일한 값의 연속 그룹 행 타임 스팬을 이용하여 (0) | 2020.06.14 |
[SQL] 문자열 SQL에서 숫자 있는지 어떻게 확인할 수 있습니까? (0) | 2020.06.14 |