以下查询结果该如何写sql语句

[复制链接]
查看11 | 回复8 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
有表a:id,name,表b:id,dp
a有3条数据,id,1,2,3
b有2条数据,id:2,3,4
选出的数据有4条。id:1,2,3,4
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
使用Union
Select id from a UNION Select id from b
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
这样不行吧,那样name和dp字段怎么办?
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
能查的到!
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
但选出的记录是6条,而不是4条!
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
select distinct id from (Select id from a UNION Select id from b)
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
union 应该是自动除去重复的呀。union all 不除去重复。
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
最初由 天仙子 发布
[B]有表a:id,name,表b:id,dp
a有3条数据,id,1,2,3
b有2条数据,id:2,3,4
选出的数据有4条。id:1,2,3,4 [/B]

select c.id, a.name, b.dp
from a
full outer join b on a.id = b.id
right join (Select id

from a

UNION

Select id from b) c on (c.id = a.id or c.id = b.id)
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
最初由 天仙子 发布
[B]有表a:id,name,表b:id,dp
a有3条数据,id,1,2,3
b有2条数据,id:2,3,4
选出的数据有4条。id:1,2,3,4 [/B]

假设:name,dp均为char
select id,name, to_char(null) dp
from a
union
select id,to_char(null) name,dp
from b
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行