2017-10-09 110 views
0

我有三張表:醫院,檢查和問題。醫院可以有零或更多的檢查。檢查可能有零個或多個問題。我需要得到一張表格,其中包含與醫院有關的所有違規行爲以及日期。表看起來像:MySQL右連接兩張表

Business Table b 
---------------------------- 
|id|name|address|city|state| 

Inspection Table i 
--------------------- 
|id|business_id|date| 

Issue Table v 
----------------------------------- 
|id|business_id|inspection_id|desc| 

我需要什麼,由i.date desc命令是:

Query result 
-------------------------------- 
|b.name|b.address|i.date|v.desc| 

會有每檢查一個以上的問題,所以我需要一排具有與上述相同。這就是我所得到的結果,但即使在不同的日期觀察到最新的檢查數據,也會爲每個問題返回。

以下是我爲我的查詢:

SELECT b.business_name AS Name, b.address, b.city, b.state, i.date, v.desc 
FROM business_table AS b 
RIGHT JOIN inspection_table i ON i.business_id = b.id 
RIGHT JOIN issue_table v ON v.inspection_id = i.id 
ORDER BY i.date DESC 
+1

你真的想'JOIN'或'左JOIN',不'RIGHT'! –

+1

嘗試左連接而不是那些正確連接 –

回答

0

試試這個

SELECT b.business_name AS Name, b.address, b.city, b.state, i.date, v.desc 
FROM issue_table v 
LEFT JOIN inspection_table i ON i.id = v.inspection_id 
LEFT JOIN business_table AS b ON v.business_id = b.id 
ORDER BY v.business_id, i.date DESC 
+0

抱歉所有編輯 –