MySQL加入问题

时间:2010-05-25 18:59:44

标签: sql mysql join

Table1有u_name,Table2有u_name,u_type和u_admin

  1. Table1.u_name是唯一的。但是Table2中的3个字段都不是唯一的。

  2. 对于Table1.u_name的任何值,表2中有0到多个条目,Table2.u_name等于该值。

  3. 对于Table1.u_name的任何值,表2中有0到1个表,Table2.u_name等于该值AND Table2.u_type ='S'

  4. 我想要的是什么:使用Table1.u_name获取Table1. ,Table2.u_admin,其中Table1.u_name = Tabl2.u_name和Table2.u_type ='S'。如果表2中没有这样的条目,我们仍然需要获得Table1。

    请帮我一些提示。非常感谢你!

1 个答案:

答案 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