Table1有u_name,Table2有u_name,u_type和u_admin
Table1.u_name是唯一的。但是Table2中的3个字段都不是唯一的。
对于Table1.u_name的任何值,表2中有0到多个条目,Table2.u_name等于该值。
对于Table1.u_name的任何值,表2中有0到1个表,Table2.u_name等于该值AND Table2.u_type ='S'
我想要的是什么:使用Table1.u_name获取Table1. ,Table2.u_admin,其中Table1.u_name = Tabl2.u_name和Table2.u_type ='S'。如果表2中没有这样的条目,我们仍然需要获得Table1。
请帮我一些提示。非常感谢你!
答案 0 :(得分:0)
我建议你阅读“外连接”,特别是“左外连接”,这是你想要的。外连接返回一个表中的所有行,为连接表中的值返回空值,其中没有与该键匹配的行。
其中任何一个都应该起作用
select table1.*, table2.u_admin from table1 left join table2
on table1.u_name=table2.u_name and table2.type='S'
或者
with a as (select u_name,u_admin from table2 where type='S')
select table1.*,a.u_admin from table1 left join a on table1.u_name=a.u_name