我想计算在某个帐户中有多少房子,其中参数将是玩家ID。
我们可以看到,玩家拥有自己的账号。该帐户可以有超过1个玩家,所以我需要检查帐户上的所有玩家是否有房子或没有。 (1名球员可以有1个房子)
我想创建一个SQL脚本,对于某些player_id,我会返回属于该玩家的帐户所拥有的房屋总数。
例如: Player_1,属于account_1
account_1上有3名玩家:
Player_3和Player_1是某些房屋的所有者。
Player_1的功能应该返回2.
我已经做了一些JOIN&edu up with
SELECT players.id AS Player_id, players.name AS Player_name, accounts.id AS
Account_id, houses.id AS HouseID
FROM players
INNER JOIN accounts ON players.account_id=accounts.id
LEFT JOIN houses ON players.id=houses.owner
ORDER BY accounts.id ASC;
这打印了我,很好地连接了玩家的帐户ID和他们拥有的房屋ID(如果不是房子的拥有者,则为NULL)
我想在某个玩家的每个帐户中拥有一些房子。
答案 0 :(得分:1)
我首先将每个玩家连接到他的共同玩家(即共享相同accountId的玩家)。然后,对于每个共同参与者,左边加入他们的房子(如果有的话)。请注意,对于每一行,如果此共同玩家不拥有房屋,则相关联合玩家的house-id将为NULL
。最后,它只是由玩家分组并计算他的共同玩家的所有潜在的家伙:
SELECT p.id AS Player_id, count(h.id)
FROM players p join players co_players on p.account_id = co_players.account_id
left join houses h on co_players.id = h.owner
group by p.id
答案 1 :(得分:0)
SELECT Count(*)
FROM houses
LEFT JOIN players ON players.id = houses.owner
Where players.id = { here put a player id without the curly braces }