-1

詳細:

http://screencast.com/t/fTRzyqso

基本的に2つのMYSQLテーブル(連絡先とトランザクション)があり、2つの条件に基づいてcontactidを取得する必要があります

  1. トランザクションがまったくないすべての連絡先(contactid)を取得します
  2. 1つ以上のトランザクションがあるが、すべてキャンセルステータスの連絡先のみを取得します。

ヘルプ!?

4

1 に答える 1

0

あなたは実際に単純な左結合でこれを達成することができます...そしてNULL(見つかりません)を探します。左結合を実行すると、右側の一致に関係なく、左側のテーブルからすべてのレコードが取得されます。したがって、キャンセルされた= "No"のトランザクションテーブルに結合条件を特に設定し、一致を見つけた場合は、結果セットからそれを無視します。トランザクションにレコードがない場合、またはすべてがキャンセル済み=「はい」に設定されている場合、それらは参加条件から除外されるため、「見つかりません」と見なされます。

select
      c.ContactID
   from
      Contacts c
         LEFT JOIN Transactions t
            on c.ContactID = t.ContactID
           AND t.Cancelled = "yes"
   where
      t.contactID is null
于 2012-04-17T23:02:20.297 に答える