如何使用3表连接zend / sql获取对象列表?

问题描述 投票:1回答:1

我有三张桌子。

  • 足球俱乐部
  • Football_club_player
  • Football_club_Title

最后两个表与Table 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实现这一点?

提前致谢。

php sql zend-framework zend-db
1个回答
0
投票

这通常是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 )
© www.soinside.com 2019 - 2024. All rights reserved.