SQL,内部联接,2个表和2列信息

时间:2017-02-07 09:01:57

标签: sql

我想检查一下我是否使用了关于此类案例的最佳方法:

2表: 第一个表:有关发票的信息,特别是2列: => ID负责1(列id_user1)和ID负责2(列id_user2) 表:tb_invoice

第二张表:id,所有责任人的姓名。 表:tb_users(columns:id_user,name ...)

要获取有关发票上2个责任人的信息,我会按照以下链接进行操作:

select 
 t1.*,
 tu1.name as responsable_1,
 tu2.name as responsable_2
from 
 tb_invoice t1
 inner join tb_users tu1 on tu1.id_user=t1.id_user1
 inner join tb_users tu2 on tu2.id_user=t1.id_user2
where 
 t1.num = 123456

还有其他解决方案吗? 谢谢你的帮助。

此致

1 个答案:

答案 0 :(得分:0)

我修复了你的别名混乱(编辑你的问题),你的查询是一个非常好的解决方案

select 
 t1.id,
 tu1.name as responsable_1,
 tu2.name as responsable_2
from 
 tb_invoice t1
 inner join tb_users tu1 on tu1.id_user=t1.id_user1
 inner join tb_users tu2 on tu2.id_user=t1.id_user2
where 
 t1.num = 123456

如果一张发票只能有一个(或没有),那么建议使用左加入而不是内部加入