SQL подсчитывать вхождения столбца в какой-либо другой таблице - PullRequest
0 голосов
/ 13 июля 2020

Я хочу подсчитать количество вхождений столбца таблицы A в таблицу B.

Этот запрос генерирует первую таблицу

Таблица A

select geo_address_id 
from favourite_address    
where rider profile_id = 1;


geo_address_id
--------------
     2
     8
     4

Вторая таблица выглядит так

Таблица B

rider_profile_id | geo_addresses| counter
-----------------------------------------
        1              8             3
        1              2             3
        1              6             2
        1              4             2
        1              1             1
        1              5             1
        

geo_address и geo_address_id относятся к одному и тому же.

I хотите подсчитать количество вхождений geo_addresses_id во второй таблице и получить что-то вроде этого

Таблица C

geo_addresses | counter
-----------------------
      8
      2
      4

заказанный des c

Я пытался объединить таблицы в geo_addresses, но получил несколько неоднозначных ошибок.

1 Ответ

1 голос
/ 13 июля 2020

Вам просто нужны join и group by:

select fa.geo_address_id, count(b.geo_address_id)
from favourite_address fa left join
     b
     on a.geo_address_id = b.geo_addresses
where fa.rider_profile_id = 1 
group by fa.geo_address_id;

Если вы квалифицируете все ссылки на столбцы в запросе, у вас никогда не возникнет проблемы с неоднозначными ссылками на столбцы. Итак, уточняющие ссылки на столбцы - это хорошая практика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...