2016-08-18 70 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

那麼實際上你試過怎麼是結果比你預期什麼不同呢? :)順便說一句,['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