2017-08-09 84 views
0

我在處理停車的數據庫上有一個ER圖。 有一個用戶表,車表,付款表和聯繫信息表。加入聲明/主鍵和外鍵

enter image description here

我瞭解如何加入一對一的關係。但是,我們如何能夠做出一個聲明,返回用戶所擁有的所有汽車的用戶名(這在圖表中是缺少的,想象它在用戶信息表中)。 user_info和user_car之間有一個太多的關係。但用戶也不需要有汽車。其可選。

所以查詢的結果應該看起來像:

一個表格,列出系統中的所有用戶,包括那些誰不擁有自己的汽車(NULL值)。有可能通過用戶名來訂購用戶嗎?

那麼這樣的結果需要什麼樣的查詢?

對於MySQL相當新,請糾正我,如果我有任何錯誤的陳述。 非常感謝您的幫助。

由於事前

+1

到目前爲止你還有什麼喲嘗試過? –

+0

使用左加入命令 – Shuddh

+0

@UsagiMiyamoto我試過這樣的事情:SELECT username.userinfo,make.user_car,model.user_car,year.user_car,license_plate.user_car FROM user_info INNER JOIN user_car ON user_info.user_id = user_car.license_plate ; –

回答

0

嘗試這樣:

SELECT ui.username, uc.make, uc.model, uc.year, uc.license_plate 
FROM user_info ui 
LEFT JOIN user_car uc ON ui.user_id = uc.user_info_user_id; 

這將顯示ALLUSER從user_info,即使他們有沒有汽車,顯示塔汽車的列NULL。如果你想省略這些,只需從LEFT JOIN刪除LEFT(或用INNER JOIN替換)...

+0

啊哈。非常感謝你。 –