在MY SQL中过滤和联接表

时间:2018-07-27 08:03:29

标签: mysql sql yii2

我有两个表Table1和Table2 在表1列中,手机具有多个手机号码条目。 我想从table1中获取那些重复的手机号码的ID,并在table2中的client1 = table1.id中搜索table1的ID。

我尝试了以下SQL代码来获取重复的手机号码ID

SELECT id  FROM table1  GROUP BY mobile  HAVING COUNT(*) > 1

然后我尝试将值输入到新的数组中,其中table1.id = table2.clientId

foreach ($table1data as $key) {
        $items[] = \Yii::$app->db->createCommand("

        SELECT clientId 
        FROM table2  
        WHERE clientId = :cid

        ")
        ->bindValue(':cid',$key['id'])
        ->queryAll();
    }

1 个答案:

答案 0 :(得分:0)

如果table1 (id)的值相同,则可以将INNER JOINEXISTS结合使用:

select t2.*
from table2 t2 inner join
     table1 t1
     on t1.id = t2.clientId 
where not exists (select 1 from table1 t11 where t11.mobile = t1.mobile and t11.id <> t.id);