Как узнать, появляется ли атрибут таблицы в другой таблице более одного раза на mysql? - PullRequest
0 голосов
/ 12 января 2020

У меня есть две таблицы A и B. Таблица A имеет 6 атрибутов (a, b, c, d, e, f, g), а таблица B имеет 4 (z, x, c, v). Атрибут x является внешним ключом атрибута a. Как получить все строки в таблице a, если строка в таблице B появляется более 3 раз или более?

Пример
A

a b c d e f g      
1 w w w w w w    
2 w w w w w w 

B - это результат из выбора

z x v b
1 1 z z
2 1 z z
3 1 z z

возврат

1 w w w w w

Ответы [ 2 ]

1 голос
/ 12 января 2020

Вы можете использовать агрегацию и join:

select a.*
from (select x
      from b
      group by x
      having count(*) > 2
     ) b join
     a
     on b.x = a.a
0 голосов
/ 12 января 2020

Вам нужен подзапрос, который возвращает все x s, для которых в таблице B есть 3 одинаковые строки.

select * from A
where a in (
  select x from B
  group by x, v, b
  having count(*) >= 3
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...