2016-08-18 3 views
1

동일한 데이터베이스의 두 테이블에서 데이터를 기반으로 테이블을 작성하기 위해 두 가지 쿼리를 실행하고 있습니다. 지금 가지고있는 코드는 아래에 있지만, 나는 이렇게하는 불필요한로드를 생성하고 있음을 알고 있습니다. 나는 같은 결과를 얻기 위해 테이블에 합류하려했지만 행운이 없었다. 어떤 입력?ColdFusion 쿼리에서 테이블 조인

<cfquery name="GetWeekends"> 
    SELECT id, weekend_type, community_id, start_date, end_date, language 
    FROM _weekends 
    WHERE weekend_type = 1 and start_date > Now() 
    ORDER BY start_date ASC 
</cfquery> 

<cfloop query="GetWeekends">     
    <cfquery name="GetCommunity"> 
     SELECT community_id, location, language, state, country 
     FROM _communities 
     WHERE community_id = #getweekends.community_id# 
    </cfquery>     
    <tr> 
     <td>#DateFormat(start_date, "mm/dd/yyyy")#</td> 
     <td>#GetComm.location#</td> 
     <td>#GetComm.state#</td> 
     <td>#GetComm.country#</td> 
     <td>#GetComm.language#</td> 
    </tr> 
</cfloop> 
+4

? :) BTW, ['JOIN'] (https://en.wikipedia.org/wiki/Join_ (SQL) #Inner_join)은 단순히 공유 키 또는 열에 두 개의 테이블을 연결합니다.이 경우에는 "community_id ". 아직 아무 것도 시도하지 않았다면 wiki 기사의 예제를 살펴보십시오. 테이블과 열 이름을 대체하여 매우 명확하고 적응하기 쉬워야합니다. – Leigh

+0

나는 더 효율적으로 만들기 위해 JOIN을 사용하려했다. 알 E의 대답은 :-) – mck

+1

(편집) 글쎄, 나는 당신이 시도한 것을 게시해야한다는 것을 암시하고 있었기 때문에, 답변을 철저히 게시하는 것보다 문제를 고칠 수 있도록 도와 주었다. 아직도 당신이 조인에 불편하다면, 나는 당신이 사용하는 SQL의 * 근본적인 부분이기 때문에, 그들에 대해 배우는 데 시간을 할애하는 것이 좋습니다. – Leigh

답변

4

데이터베이스 조인은 매우 기본입니다. 당신은 그들에 대해 자신을 교육하는 것이 좋습니다. 어떤 경우

는, 당신이 그런 짓을 할 것 같습니다 : 실제로 당신이 시도하고 결과가 예상하는 것보다 다른 방법이었다 것을 그래서

<cfquery name="GetWeekends"> 
SELECT w.id, w.weekend_type, w.community_id, w.start_date, w.end_date, 
    w.language, 
    c.community_id, c.location, c.language, c.state, c.country 
FROM _weekends w 
    INNER JOIN _communities c 
    ON w.community_id=c.community_id 
WHERE w.weekend_type = 1 and w.start_date > Now() 
ORDER BY w.start_date ASC 
</cfquery> 
+0

굉장! 나는 그들 주위에 머리를 감싸려고 노력하고 있으며, 때때로 당신이 작업하고있는 코드에서 사용되는 것을보고 전구가 계속 켜지 게한다. 고맙습니다!! – mck

관련 문제