соединение таблицы с условием count () - PullRequest
0 голосов
/ 21 марта 2012

Мне нужно найти всех покровителей, у которых есть хотя бы одна запись тиража. Вот то, что у меня сейчас есть, но он находит только один результат. Что я делаю не так?

SELECT * 
FROM patrons 
    INNER JOIN circulations on circulations.patron_id = patrons.id 
HAVING COUNT(circulations.id) > 0

Я не дал структуры таблиц, так как полагал, что это не нужно для решения. Если это необходимо, дайте мне знать, и я постараюсь добавить его к вопросу

Ответы [ 4 ]

4 голосов
/ 21 марта 2012

Как насчет:

SELECT * FROM patrons 
WHERE EXISTS (SELECT 1 FROM circulations 
              WHERE circulations.patron_id = patrons.id)
3 голосов
/ 21 марта 2012

Должно работать следующее:

SELECT * 
FROM patrons 
    INNER JOIN circulations on circulations.patron_id = patrons.id 
GROUP BY patrons.id
0 голосов
/ 21 марта 2012

Попробуйте ...

select *
from patrons p
left join circulation c on c.patron_id = p.id
where not c.patron_id is null
0 голосов
/ 21 марта 2012

посмотрите на мой образец:

Предполагается, что имя PatronName является столбцом в вашей таблице покровителей.

SELECT PatronName,COUNT(circulations.id) as CountCirculation
FROM patrons 
    INNER JOIN circulations on circulations.patron_id = patrons.id 
group by PatronName
HAVING COUNT(circulations.id) > 0

Привет

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