A表
id loc_id no name
1 5 2 大
2 5 3 小
3 5 6 中小B表
id locid no
1 5 2
1 5 6
1 5 7Sql语句如何写才能保证 A表和B表关联,显示字段 loc_id,no,name,同时还要把B表中 no 值是7的不匹配记录也一同查询出来呢???是不是要写一个过程呢?高手指点
id loc_id no name
1 5 2 大
2 5 3 小
3 5 6 中小B表
id locid no
1 5 2
1 5 6
1 5 7Sql语句如何写才能保证 A表和B表关联,显示字段 loc_id,no,name,同时还要把B表中 no 值是7的不匹配记录也一同查询出来呢???是不是要写一个过程呢?高手指点
解决方案 »
- C# 程序的问题.
- 关于接口的问题
- 有谁在ASP.NET C#中用过Jquery的$.getJSON方法去获取一个JSON对象
- XmlElement.intertext="<sometext>", 如何写才能不要将"<",">"转换成< >
- 更新数据库和更新dataset有何区别?
- 求多线程并发触发控件的Invoke()解决方案
- 如何把我的事件处理函放在事件队列的第一个执行?
- 滚动显示
- 我用axWebBrowser控件实现浏览器,如何实现打开页面时的进度条显示?
- 我提问!我的机器从win2000_server升到域服务器后,.net无法在Web中运行!怎么办???
- 关于读取DBF格式文件的问题
- 我想用内存流来构造一个XmlWriter,但不知道怎么用.
a.loc_id,
a.no,
a.name
from b
left outer jion a on b.loc_id = a.loc_id and b.no = a.no
loc_id no name
5 2 大
5 6 中小
5 7 ""
a.loc_id,
a.no,
a.name
from a,b
where b.loc_id = a.loc_id and b.no = a.no and b.no<>7
a.loc_id,
a.no,
a.name
from b
left outer join a on b.no = a.no
b.locid,
b.no,
a.name
from b
left outer join a on b.locid = a.locid and b.no = a.no
A.loc_id=B.loc_id and b.no = a.no不过后面那个条件你写的不清楚,有些搞不太清楚.
"同时还要把B表中 no 值是7的不匹配记录也一起查出来"是指什么?
你是不是想把B表中no值=7,但是在A表中无对应记录的记录也列在同一个查询结果里?
如果是的话,应该这样写:select
a.loc_id,
b.no,
nvl(a.name,'') name --当值为NULL时显示空串
from
a,b
where
b.loc_id = a.loc_id(+)
and
b.no = a.no(+) -- 这两个条件是用来做ORACLE的外连接
or
b.no = 7 -- 这是为了保证B表中只要有no=7的记录都会被列出来这个SQL语句只有一个地方要注意,就是B表中no值=7,但在A表中无对应记录的记录存在时,结果集的a.loc_id字段里面会出现NULL值.需要用NVL()函数排空,因为不知道这个字段的值类型,所以没写.你可以在此基础上修改一下再用.
loc_id和locid是一回事吗
两个表的no是一回事吗