我們在的MySQL數據庫三個表 -SELECT查詢基於多個表
- 公司
- 員工
- 地址
公司擁有員工。員工有地址。 [注意他們可以有多個地址]
請看看下面的圖片爲結構
的總體思路,我們這裏有兩個條件 -
1.Get所有公司的員工至少有一個地址列在地址表中。
實例查詢結果應包含下列公司 -
微軟,谷歌,IBM
2.註冊所有的公司,其員工有沒有在地址表中列出的地址。
實例查詢結果應包含下列公司 -
雅虎
目前我們已經寫了這個查詢,這似乎是在爲這個特定條件 -
SELECT
company_id,
companies.company_name,
FROM companies
LEFT OUTER JOIN employees ON employees.company_id = companies.company_id
LEFT OUTER JOIN addresses ON address.employee_id = employees.employee_id AND address_id IS NOT NULL
WHERE address_id IS NULL GROUP BY companies.company_id;
有使用單個查詢將這些結果提取到數據庫而不使用Stored Pro cedures?它應該向結果集(0或1)添加一列,具體取決於公司員工是否列有地址。
Ahem。你給我們一個似乎正在工作的查詢,然後你問怎麼做? – Alexander
存儲過程?你爲什麼需要這個? – hashbrown
[解決方案](http://sqlfiddle.com/#!2/1c264/9)。按公司分組並檢查相關地址的計數是否大於0. –