如何使用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获取对象列表?的主要内容,如果未能解决你的问题,请参考以下文章