2015-10-20 57 views
0

加入我想在mysql中加入一個查詢的輸出與第二個表:與內部問題在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 = 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 

第二個表的結果:

select * from health_points 

輸出:

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?任何指向哪裏我會錯在這裏?

+0

@Thorsten你是如何刪除所有的演員逗號這麼容易?並放置列? – python

+1

我已經使用過一個文本編輯器:-) –

+0

@我可以給你一個大拇指:)或積分 – python

回答

2

你缺少外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) 
+0

Man!每個數據庫都是如此不同:/。主席先生,非常感謝你 – python

+0

我只是缺少外部選擇狀態,否則一切都很好。 – python

+0

謝謝:)我刪除了「不適合」的說明。 –

2

你可以這樣做:

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 
+0

謝謝你的評論,但不能接受這兩個答案。豎起大拇指:) – python

+0

@RakeshRanjanSukla - 不客氣,你應該接受另一個答案,因爲他速度更快。 –

+0

我只能在6分鐘後才能接受堆棧溢出的事情 – python