Как получить список объектов с 3 таблицами соединения Zend / SQL? - PullRequest
1 голос
/ 12 апреля 2019

У меня есть три таблицы.

  • Football_club

  • Football_club_player

  • Football_club_Title

Последние две таблицы имеют много к одному Отношение к столу Football_club

структура таблиц:

Football club
coulmns:

football_club_id
name
...

_______________________________

Football club Player
coulmns:

football_club_player_id
football_club_id
...

________________________

Football_club_Title
coulmns:

Football_club_title_id
football_club_id
...

Я хочу иметь список футбольных клубов. Этот список должен соответствовать следующим правилам: - В этом списке не должно быть НИКАКИХ футбольных клубов, в которых есть: ровно один игрок с && нулевым названием клуба.

Я работаю с Zend db select. И список, который я хочу получить, должен быть массивом Model_Football_Clubs.

Как добиться этого с помощью Zend или вообще с помощью SQL?

Спасибо заранее.

1 Ответ

0 голосов
/ 12 апреля 2019

Это вообще sql.

WITH
    more_than_one_player_clubs AS
    (
        SELECT
            plyr.football_club_player_id,
            COUNT(plyr.name)                    AS players,
            COUNT(title.Football_club_title_id) AS titles
        FROM
            Football_club_player plyr
        LEFT OUTER JOIN
            Football_club_Title title
        ON
            (
                plyr.football_club_id = title.football_club_id )
        GROUP BY
            plyr.football_club_player_id
    )
SELECT
    clb.football_club_id,
    clb.name,
    plyr.football_club_player_id,
    title.Football_club_title_id
FROM
    Football_club clb
LEFT OUTER JOIN
    more_than_one_player_clubs plyr
ON
    (
        clb.football_club_id = plyr.football_club_id )
WHERE
    (
        plyr.titles > 0
    OR  plyr.player > 1 )
OR (
        plyr.titles = 0
    AND plyr.player = 0 )
...