如何从左侧获取所有行,仅在右侧表中获得匹配的行

时间:2014-02-25 11:53:42

标签: mysql sql sql-server-2008-r2

我有两个表..我需要从左侧表中获取所有行,但只需要从右侧表中获取匹配的行..

Left table: tbl_BT

BT_Id   Name    
 1       A
 2       B
 3       C
 4       D
 5       E

右表:tbl_Rc

Rc_ID   Country   BT_Id
 1       Con1      1
 2       Con2      2
 3       Con3      5

结果表:

BT_Id   Name  Rc_Id   Country
 1       A     1       Con1
 2       B     2       Con2
 3       C     -        -
 4       D     -        -
 5       E     3       Con3

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

所以你需要的是LEFT JOIN

SELECT bt.BT_Id as BT_Id,bt.Name as Name ,
  IFNULL(rc.Rc_ID,"-") as Rc_Id,IFNULL(rc.Country,"-") as Country
FROM tbl_BT bt LEFT JOIN tbl_Rc rc 
ON bt.BT_Id=rc.BT_Id

IFNULL()以防你在右表上有空值,因此显示的是-而不是null

答案 1 :(得分:1)

试试这个...

SELECT tbl_BT.BT_Id,Name,Rc_Id,Country from tbl_BT 
left join tbl_Rc on tbl_BT.BT_Id = tbl_Rc.BT_Id