在sql连接查询形成中的问题

时间:2017-02-01 14:00:21

标签: sql sql-server select join

我有两个表Say A和B. A是主表,B是子表,我需要从中获取值。

select A.Id, A.Name, B.Path from A,B where A.Id=B.Id 

现在,我想添加第3个表格的列,它是表格的子项,B',即C,即C.File。

如果C.SubId = B.SubId为false,则C.File的值为null否则当条件变为true时将返回值。

3 个答案:

答案 0 :(得分:3)

这是left join

的确切定义
SELECT    a.id, b.name, b.path, c.file
FROM      a
JOIN      b ON a.id = b.id 
LEFT JOIN c ON b.subid = c.subid

答案 1 :(得分:1)

你需要LEFT JOIN我可以收集的第三张桌子。

SELECT A.Id, A.Name, B.Path, C.file
FROM tableA a
INNER JOIN tableB b ON a.id = b.id
LEFT JOIN tableC c ON b.subid = c.subid

答案 2 :(得分:0)

使用INNER JOIN

简单地加入所有三个表格
select A.Id, A.Name, B.Path ,C.File
FROM A
INNER JOIN B
ON A.Id=B.Id 
INNER JOIN C
ON C.SubId=B.SubId