2017-08-09 88 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

啊哈。非常感谢你。 –