我有一张看起来像这样的表,
year,t1,t2,winner
我想在团队的总决赛中找到总出场次数,基本上我需要将这两个查询联合起来
select t1 from cups
union
select t2 from cups
然后执行group by
。但是,我想在不使用UNION(不是作业)的情况下运行此查询,因为我认为UNION不是标准SQL。我无法使用IN,因为我会丢失计数。有人有什么建议吗?
答案 0 :(得分:2)
每个输入行需要两行,一行用于t1,一行用于t2。 UNION是正确的标准SQL方法。我甚至无法想到另一种模糊不清的方法,甚至那些出现来扫描表格两次。
答案 1 :(得分:1)
您也应该使用UNION ALL
来包括重复项
然后统计每个团队。
<强>查询强>
select t.team,count(t.team) as `Total Appearances`
from
(
select team1 as team from tblMatches
union all
select team2 as team from tblMatches
)t
group by t.team;
答案 2 :(得分:0)
UNION
运算符是SQL中的保留关键字
UNION
运算符用于组合两个或多个SELECT语句的结果集。
请注意SELECT
中的每个UNION
语句必须具有相同的列数。列还必须具有类似的数据类型。此外,每个SELECT
语句中的列必须采用相同的顺序。
SQL UNION语法
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
相同
select t1
FROM cups
INNER JOIN cups2
ON t1.column_name=t2.column_name;
和您在同一张表中找到了两个不同的字段
select t1 from cups
union
select t2 from cups
所以试试这个
SELECT *
FROM cups
WHERE t1=t2
答案 3 :(得分:0)
如果您希望找到球队名称和球队进入决赛的次数,那么这样的事情可能会有所帮助:
select team, count(1) as appearances from
( select t1 as team from cups
union all
select t2 as team from cups
) as totalAppearances
group by team