2017-10-13 65 views
-4

我需要在一個報告中如何編寫SQL查詢以從多個表中獲取數據?

不同表中的下一個數據,我需要從passport.table

enter image description here

選擇從consultant.table

first_name & last_name & email & phone所有顧問信息

我在用戶表中有passport_id

enter image description here

Number of consultant和他level從查詢consultant.table

+1

你嘗試過什麼了嗎? – Mureinik

+0

我使用mysql表格 – Imediasun

+0

請在格式化文本(不是圖像)中共享示例數據和所需輸出。請閱讀[詢問SQL問題](https://meta.stackoverflow.com/questions/271055/tips-for-asking-a-good-structured-query-language-sql-question/271056) – zarruq

回答

0

嘗試的主表做一個內部或左加入。事情是這樣的:

SELECT a.first_name, a.last_name, a.email, a.phone, b.* from passport a 
LEFT JOIN user b 
ON a.id=b.passport_id 

我無法從你的截圖中看到哪些字段名稱是顧問和Level因此b.*皮卡所有從該表(我假設它是該表上的?)領域。無論如何,您可以輕鬆地自定義此查詢。

+0

和諮詢顧問主要我需要有關顧問的數據 – Imediasun

+0

只需添加如下所示的另一個LEFT JOIN: SELECT a.first_name,a.last_name,a.email,a.phone,b。*,c。*從護照a LEFT JOIN用戶b ON a.id = b.passport_id LEFT JOIN顧問c ON a.id = c.customer_id - >其中consultant_id是與護照ID相關的外鍵。然而,這是不確定的,因爲你沒有發佈你的顧問表的截圖,所以你必須自己修改它。 如果您需要將數據輸出爲「嚴格」或沒有空值,則可以使用INNER而不是LEFT。 – Arkhaine

+0

在這種情況下,我的錯誤是什麼http://prntscr.com/gws8ma – Imediasun

1

使用此SQL查詢來獲取你的結果:

SELECT a.first_name, 
     a.last_name, 
     a.email, 
     a.phone, 
     b.level, 
     b.user_id 
     from passport a 
     INNER JOIN user c 
     ON a.id=c.passport_id 
     INNER JOIN consultant b 
     ON b.user_id=c.id 

Check this SQL Fiddle for output

相關問題