MYSQL两个表基于ONLY和ONLY以相同的字段值加入和获取结果

时间:2012-04-17 20:58:31

标签: mysql join

详细信息:

http://screencast.com/t/fTRzyqso

基本上有2个MYSQL表(联系人和交易),需要根据两个条件得到联系

  1. 获取所有没有交易的联系人(contactid)
  2. 仅获取具有一个或多个交易但所有交易均处于取消状态的联系人。
  3. 帮助!?

1 个答案:

答案 0 :(得分:0)

您可以通过简单的LEFT连接实际完成此操作...并查找NULL(未找到)。通过执行左连接,无论右侧是否匹配,它都会从左表中获取所有记录。因此,如果我们将连接条件设置为特定于Canceled =“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