[英]Merge two queries into one
我有两个查询,我想合并为一个。
第一个看起来像这样;
SELECT t.name,
t.score,
COUNT(m.user_id) AS memberCount
FROM team AS t, team_member AS m
WHERE t.team_id = '$id' AND m.team_id = '$id'
第二个看起来像这样;
SELECT COUNT(t.team_id) AS rank
FROM team AS t
WHERE t.score > (SELECT t.score
FROM team AS t
WHERE t.team_id = '$id')
我怀疑JOIN将成为解决方案的一部分,我只是不知道如何。 任何想法表示赞赏。
例如,您可以在第一个查询的SELECT子句中插入第二个查询权限:
SELECT
t.name,
t.score,
(SELECT
COUNT(t.team_id) AS rank
FROM
team AS t
WHERE
t.score > (SELECT t.score FROM team AS t WHERE t.team_id = '$id')
) as rank,
COUNT(m.user_id) AS memberCount
FROM
team AS t, team_member AS m
WHERE
t.team_id = '$id' AND m.team_id = '$id'
您可以使用UNION
:
SELECT t.name,
t.score,
COUNT(m.user_id) AS memberCount
FROM team AS t, team_member AS m
WHERE t.team_id = '$id' AND m.team_id = '$id'
UNION
SELECT COUNT(t.team_id) AS rank
FROM team AS t
WHERE t.score > (SELECT t.score
FROM team AS t
WHERE t.team_id = '$id')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.