Table1의 2개 열을 Table 2에 결합
문제
table1 열을 테이블 2의 2개 열로 어떻게 참조합니까?
'라는 테이블을 만들었습니다.상태' 50개의 정확한 행 포함
'에서 (weddingState,contactState)를 연결하려고 합니다.혼례' 테이블
이건 제가 만든 성명인데 상위에만 조인되네요 결혼식상태 올바르게 - 그 아래의 INNER Join에 신경 쓰지 않는 것 같습니다 ...
선택하다 *
결혼식에서
INNER JOIN은 s1 ON weddings로 나타납니다.결혼식상태 = s1.StateId //결혼 상태
INNER JOIN 상태는 s2 ON weddings.ContactState = s2.StateId //신부의 연락처 상태입니다.
어디에서 weddings.weddingid="094829292"
해결책
나는 당신이 PHP 또는 무언가에서 이것을 검색하고 있다고 생각합니다. 그리고 당신은 필드 이름으로 키를 뿌린 해시 어레이로 행을 가져오고 있습니다. 물론 주어진 키가있는 해시에 하나의 요소 만있을 수 있습니다. 따라서 열 별명을 사용하여 동일한 이름을 가진 열에 별개의 별칭이 제공되도록해야합니다.
SELECT w.*, s1.StateID AS wstate, s2.StateId AS cstate
FROM weddings AS w
INNER JOIN states AS s1 ON w.WeddingState = s1.StateId //state of marriage
INNER JOIN states AS s2 ON w.ContactState = s2.StateId //contact state of bride
WHERE w.weddingid="094829292";
이제 해시 어레이에는 "WSTATE"및 "CSTATE"키가 있습니다. 이 열을 별조하지 않으면 하나는 항상 다른 것을 덮어 씁니다.
다른 팁
그리고 당신을 결론으로 이끄는 결과로 당신은 무엇을 얻고 있습니까?
두 조인의 필드 이름과 기본 테이블의 일부 필드 이름이 동일하기 때문에 처음에는 혼란스러울 것입니다.출력 열을 명시적으로 선택하고 의미 있는 별칭을 지정하는 것은 정말 좋은 생각입니다.
어때요 :
S1.StateName, S2.StateName을 선택하십시오
결혼식에서
내부 결합 상태는 결혼식에서 s1으로 상태를 wed.weddingstate = s1.stateid // 결혼 상태
내부 결합 상태는 결혼식에서 S2로 상태를 as
where weddings.weddingid = "094829292"
감사합니다
w.*,
s1.StateId AS WeddingStateId,
s1.StateName AS WeddingStateName,
s2.StateId AS ContactStateId,
s2.StateName AS ContactStateName
결혼식에서 w
내부 조인은 W.weddingstate = s1.stateid에서 S1로 상태를 유지합니다
내부 조인은 W.ContactState = S2.StateId에서 S2로 상태 상태입니다