1

Coldfusion に 2 つの Query オブジェクトがあり、これら 2 つのクエリについて小さなレポートを作成したいと考えています。

クエリは次のようになります

Q1

ID CODE NAME ACTIVE

Q2
CODE PRICE BOOKABLE

コードCODE フィールドは、これら 2 つのクエリの共通キーです。ここで、Q1 ではあるが Q2 ではなく、その逆のレコードを取得したいのですが、CODE一意である両方のクエリで共通のレコード数はいくつですか。

4

3 に答える 3

4
 <cfquery name="Q1" datasource="test">
       select * from users where code not in (select code from system)
 </cfquery>
 <cfquery name="Q2" datasource="test">
          select * from system where code not in (select code from users)
  </cfquery>
于 2013-04-12T10:40:39.197 に答える
0

他の人に同意し、DBに仕事をさせてください。これらが同じデータベースにある場合は、これを実行して両方のテーブルに共通のレコードを取得します。

SELECT Q1.ID
  ,Q1.CODE 
  ,Q1.NAME 
  ,Q1.ACTIVE
  ,Q2.PRICE 
  ,Q2.BOOKABLE
FROM Q1, Q2
WHERE Q1.CODE = Q2.CODE

あなたの質問の最初の部分を行うために.. Q1 にあるが Q2 にはないレコードを取得するには、outer_join を使用してそれを行うことができます。外部結合を行う場合、すべてのデータベースで構文が異なります。いつも見に行かなければならないので、ここには書きません。

もう 1 つのオプションは、2 つのテーブルを統合し、cold fusion に column_name = '' のレポートをプルさせることです。

select * from Q1 UNION SELECT * FROM Q2  

-- 両方のデータベースで「コード」列が重複しているため、実際にはこれを行うことはできません (* を選択)。列を明示的に指定し、最初の列の名前を Q1Code、次に Q2Code に変更する必要があります。

次に、CFで行います

<cfif q2Code EQ ''> print Q1: #Q1CODE# <cfelse> print Q2: #Q2CODE#  </cfif>

または多分あなたがしたい:

<cfif q1code EQ Q2code> yay they match</cfif>
于 2013-04-22T21:59:55.860 に答える