2016-08-18 31 views
1

同じデータベース内の2つのテーブルからデータを取得するために2つのクエリを実行しています。私が今使っているコードは以下の通りですが、私はこのように不必要な読み込みを作成しています。私は同じ結果を得るためにテーブルに参加しようとしているが、運がなかった。どんな入力?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)は、共有キーまたは列の2つのテーブルを単に接続します。あなたのケースでは「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

関連する問題