0

表:lead_salesperson

------------------------
id    | sp_id   |  phone
------------------------
0     | 1       |  12345678
1     | 1       |  87654321

表:产品属性

------------------------------------------------
product  | sp_id    |  phone    | activity_name
------------------------------------------------
0        | 1        |  12345678 | vm
1        | 1        |  12345678 | DNC
2        | 1        |  87654321 | SCB 
3        | 1        |  77654321 | SCB 

Select DISTINCT(l.phone) as phone 
  from lead_salesperson as l 
  join lead_activity as ls 
  on (ls.phone=l.phone) && (ls.year_make=l.year_make) && (ls.make=l.make) 
 where l.sp_id=$sp_id and ((ls.act_name!='DNC') OR (ls.act_name!='DNC_AUTO'))

所以输出应该是87654321,77654321

我正在尝试获取所有没有 DNC 或 DNC_AUTO 的电话号码 ...leadactivity 可以有多行连接到lead_salesperson 中的一行。如果即使其中一行(电话)在活动名称中具有 DNC 或 DNC _AUTO,那么我不希望该电话成为结果集的一部分任何想法......如何解决这个问题。

4

1 回答 1

1

我认为您可以使用定义要排除的电话的子查询来解决此问题:

select distinct phone
from lead_activity as ls
where act_name in ('DNC', 'DNC_AUTO')

现在,您可以将此查询用作条件:

select distinct
    l.phone as phone
from
    lead_salesperson as l
where
    phone not in (
        select distinct phone 
        from lead_activity as ls 
        where act_name in ('DNC', 'DNC_AUTO'))

希望这可以帮助你

于 2012-11-02T07:42:04.713 回答