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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用3表连接zend / sql获取对象列表?相关的知识,希望对你有一定的参考价值。

我有三张桌子。

  • 足球俱乐部
  • 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实现这一点?

提前致谢。

答案

这通常是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 )

以上是关于如何使用3表连接zend / sql获取对象列表?的主要内容,如果未能解决你的问题,请参考以下文章

从 Zend_Db_Table_Select 获取表别名

如何使用本机 SQL 在 Hibernate 中获取仅包含选定列的表实体列表?

获取未连接用户列表的 SQL 查询

如何让 SQL Server 表存储一个列表?

如何在 Laravel 中将连接结果作为对象数组获取?

JDBC连接数据库并创建表