Фильтровать и объединять таблицы в МОЕМ SQL

0

У меня есть две таблицы Table1 и Table2. В таблице 1 столбец mobile имеет несколько записей мобильного номера. Я хочу получить идентификатор повторяющегося мобильного номера из таблицы1 и найти идентификаторы таблицы1 в таблице2, где clientId = table1.id.

Я попробовал приведенный ниже код SQL для получения идентификатора повторяющегося мобильного номера

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();
    }
Теги:
yii2

1 ответ

0
Лучший ответ

Если table1 (id) имеет одинаковое значение, вы можете использовать INNER JOIN с EXISTS:

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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню