求一句SQL.
我用的是Access,现在有个SQL写不出来,请大家帮帮忙,谢谢。
有两个表
TableA
F1 ,F2 ,F3 ,ID_B
----------------------------------
内容 ,内容 ,内容 ,1 (TableB的记录的ID)
内容 ,内容 ,内容 ,0
内容 ,内容 ,内容 ,2 (TableB的记录的ID)
内容 ,内容 ,内容 ,0
内容 ,内容 ,内容 ,4 (TableB的记录的ID)
TableB
ID ,F1
_________________
1 ,内容
2 ,内容
3 ,内容
4 ,内容
TableA的“ID_B”栏位记录的是TableB里某一条记录的ID
我想读出TableA的全部记录,还有每条记录关联的TableB中的内容。
我这样写
SELECT TableA.F1,TableA.F2,TableA.F3,TableB.F1 FROM TableA,TableB WHERE TableA.ID_B=TableB.ID
这样可以正确的读取TableA和TableB中关联的内容。
但是有个问题,TableA的记录中不一定每一条都和TableB的记录有关联,如果没有关联,字段“ID_B”里记录的就不是TableB中的ID号,而是0.
这样一来,上面的SQL就有问题了,它只能返回和TableB有关联的记录,凡是TableA.ID_B为零的记录都不会返回。
所有,我求一句SQL,返回TableA中的记录,如果某记录和TableB有关联就同时返回TableB的数据,没有的话就什么也不返回。
谢谢大家
------解决方案----------------------用left join,这样即使B没有对应的数据,也能把A的数据查询出来
SELECT TableA.F1,TableA.F2,TableA.F3,TableB.F1
FROM TableA
left join TableB on TableA.ID_B=TableB.ID