每个单独的id';使用join查询在两个表中的mysql中的s计数
我有两张桌子 表1每个单独的id';使用join查询在两个表中的mysql中的s计数,mysql,sql,select,join,Mysql,Sql,Select,Join,我有两张桌子 表1 id team_id fav_id 1 10 1 2 10 6 3 11 5 4 12 5 5 12 1 6 25 6 表2 league_id team_id name 100 10 a 100 11 b 100 12 c 100
id team_id fav_id
1 10 1
2 10 6
3 11 5
4 12 5
5 12 1
6 25 6
表2
league_id team_id name
100 10 a
100 11 b
100 12 c
100 13 d
101 25 e
我需要一个查询中表2
中联盟id=100的所有团队id
的结果,以及表1
中每个团队id
的fav\u id
计数的加入的结果
期望的结果是
league_id team_id name count of(fav_id)
-------------------------------------------------
100 10 a 2
100 11 b 1
100 12 c 2
100 13 d 0
有什么想法吗?因为您想在列表中列出所有的团队id
,但没有fav\u id,所以您需要使用左连接来连接这两个表。使用LEFT JOIN
的原因是,无论它在右侧表中是否有匹配项,它都会返回联接左侧表定义的所有行
SELECT
table_2.league_id,
table_2.team_id,
table_2.name,
(SELECT COUNT(*) FROM table_1 WHERE table_1.team_id=table_2.team_id)
FROM
table_2
WHERE
table_2.league_id=100
SELECT a.league_ID, a.team_ID,
COUNT(b.team_ID) totalFAV,
a.Name
FROM table2 a
LEFT JOIN table1 b
ON a.team_ID = b.team_ID
WHERE a.league_ID = 100
GROUP BY a.league_ID, a.team_ID, a.Name
要进一步了解加入的更多信息,请访问以下链接:
输出
╔═══════════╦═════════╦══════════╦══════╗
║ LEAGUE_ID ║ TEAM_ID ║ TOTALFAV ║ NAME ║
╠═══════════╬═════════╬══════════╬══════╣
║ 100 ║ 10 ║ 2 ║ a ║
║ 100 ║ 11 ║ 1 ║ b ║
║ 100 ║ 12 ║ 2 ║ c ║
║ 100 ║ 13 ║ 0 ║ d ║
╚═══════════╩═════════╩══════════╩══════╝
由于要在列表中列出所有没有fav_id的团队id
,因此需要使用左连接来连接这两个表。使用LEFT JOIN
的原因是,无论它在右侧表中是否有匹配项,它都会返回联接左侧表定义的所有行
SELECT a.league_ID, a.team_ID,
COUNT(b.team_ID) totalFAV,
a.Name
FROM table2 a
LEFT JOIN table1 b
ON a.team_ID = b.team_ID
WHERE a.league_ID = 100
GROUP BY a.league_ID, a.team_ID, a.Name
要进一步了解加入的更多信息,请访问以下链接:
输出
╔═══════════╦═════════╦══════════╦══════╗
║ LEAGUE_ID ║ TEAM_ID ║ TOTALFAV ║ NAME ║
╠═══════════╬═════════╬══════════╬══════╣
║ 100 ║ 10 ║ 2 ║ a ║
║ 100 ║ 11 ║ 1 ║ b ║
║ 100 ║ 12 ║ 2 ║ c ║
║ 100 ║ 13 ║ 0 ║ d ║
╚═══════════╩═════════╩══════════╩══════╝
我想那会管用的
这是一把小提琴
我想那会管用的
这是一把小提琴
关于如何一起连接到MySQL表,这里已经有数百个问题(包括答案)。您的问题与前面的问题有什么不同?在您的示例结果中,同一个联盟如何获得不同的名称?这里已经有数百个关于如何一起连接到MySQL表的问题(带答案)。你的问题与之前的问题有什么不同?在你的示例结果中,你是如何得到同一联赛的不同名称的?谢谢你的工作。伟大的出于好奇,这里使用的子查询的性能与使用联接相比如何?查询解析器是否会生成相同的查询执行计划?@Paccc我将尝试运行此查询的EXPLAIN
,并与John Wooes的答案进行比较。稍后我会告诉你的。谢谢你的工作。伟大的出于好奇,这里使用的子查询的性能与使用联接相比如何?查询解析器是否会生成相同的查询执行计划?@Paccc我将尝试运行此查询的EXPLAIN
,并与John Wooes的答案进行比较。谢谢你的努力不客气,你需要更多的解释吗?不,谢谢!明白我的问题了。很高兴听到这个消息。谢谢你的努力。不客气。你需要更多的解释吗?不,谢谢!明白我的问题了。很高兴听到:D