mysql中的内部连接问题
我想将一个查询的输出与mysql中的第二个表连接起来:mysql中的内部连接问题,mysql,sql,inner-join,mysql-workbench,Mysql,Sql,Inner Join,Mysql Workbench,我想将一个查询的输出与mysql中的第二个表连接起来: (select A.name, A.address, sum(C.penalty_points) as points from restaurant as A inner join inspection as B ON A.restaurant_id = B.restaurant_id inner join violation as C ON C.violation_id =
(select
A.name, A.address, sum(C.penalty_points) as points
from
restaurant as A
inner join
inspection as B ON A.restaurant_id = B.restaurant_id
inner join
violation as C ON C.violation_id = B.violation_id
group by A.name )
输出:
name address points
Kitchen 305 660 Washington Ave 2
PL8 Kitchen Southeast 17th Street in Fort Lauderdale 11
Prime One Twelve 112 Ocean Drive 5
Seasons 52 Palm Beach Gardens 3
Six Tables 32 East Atlantic 8
Table 26 Park Racks Downtown Eatery 2
points health_grade
0 A
1 A
2 A
3 A
4 A
5 B
6 B
7 B
8 B
9 B
10 B
11 C
12 C
13 C
14 C
15 C
17 FAIL
18 FAIL
19 FAIL
第二个表的结果是:
select * from health_points
输出:
name address points
Kitchen 305 660 Washington Ave 2
PL8 Kitchen Southeast 17th Street in Fort Lauderdale 11
Prime One Twelve 112 Ocean Drive 5
Seasons 52 Palm Beach Gardens 3
Six Tables 32 East Atlantic 8
Table 26 Park Racks Downtown Eatery 2
points health_grade
0 A
1 A
2 A
3 A
4 A
5 B
6 B
7 B
8 B
9 B
10 B
11 C
12 C
13 C
14 C
15 C
17 FAIL
18 FAIL
19 FAIL
是否有一种方法可以将第一个查询与第二个表结合起来并提取健康等级?我试着说:
(select
A.name, A.address, sum(C.penalty_points) as points
from
restaurant as A
inner join
inspection as B ON A.restaurant_id = B.restaurant_id
inner join
violation as C ON C.violation_id = B.violation_id
group by A.name ) as D inner join health_points as E on D.points = E.points
但它在mysql中显示错误?有人指出我哪里出错了吗 您缺少外部
SELECT
子句:
SELECT D.*, E.health_grade
FROM (
SELECT A.name, A.address, sum(C.penalty_points) as points
FROM restaurant A
JOIN inspection B ON (A.restaurant_id = B.restaurant_id)
JOIN violation C ON (C.violation_id = B.violation_id)
GROUP BY A.name
) D
JOIN health_points E ON (D.points = E.points)
您缺少外部
SELECT
子句:
SELECT D.*, E.health_grade
FROM (
SELECT A.name, A.address, sum(C.penalty_points) as points
FROM restaurant A
JOIN inspection B ON (A.restaurant_id = B.restaurant_id)
JOIN violation C ON (C.violation_id = B.violation_id)
GROUP BY A.name
) D
JOIN health_points E ON (D.points = E.points)
您可以这样做:
SELECT
e.health_grade,
d.points
FROM
(
select
A.name, A.address, sum(C.penalty_points) as points
from restaurant as A
inner join inspection as B ON A.restaurant_id = B.restaurant_id
inner join violation as C ON C.violation_id = B.violation_id
group by A.name, A.address
) as D
inner join health_points as E on D.points = E.points
您可以这样做:
SELECT
e.health_grade,
d.points
FROM
(
select
A.name, A.address, sum(C.penalty_points) as points
from restaurant as A
inner join inspection as B ON A.restaurant_id = B.restaurant_id
inner join violation as C ON C.violation_id = B.violation_id
group by A.name, A.address
) as D
inner join health_points as E on D.points = E.points
老兄!!每个数据库都是如此不同:/。先生,谢谢你,所以木奇只是错过了外部选择状态,否则一切都好。谢谢:)我删除了“不合适”的便条。伙计!!每个数据库都是如此不同:/。先生,谢谢你,muchI只是错过了外部选择状态,否则一切都好。谢谢:)我删除了“不合适”的便条。谢谢你的评论,但不能同时接受两个答案。竖起大拇指:)@RakeshRanjanSukla-不客气,你应该接受另一个答案,因为他更快。我只能在6分钟后接受,堆栈溢出感谢你的评论,但不能接受两个答案。竖起大拇指:)@RakeshRanjanSukla-不客气,你应该接受另一个答案,因为他更快。我只能在6分钟后接受,堆栈溢出thing@Thorsten您是如何如此轻松地删除所有多余的逗号的?还有专栏的位置?我用了一个文本编辑器:-)@我怎么能给你竖起大拇指:)或者points@Thorsten您是如何如此轻松地删除所有多余的逗号的?还有列的位置?我用了一个文本编辑器:-)@我怎么能给你竖起大拇指:)或分数